From 952c5c128f9efaea89d41d882c4ea3ade7df4591 Mon Sep 17 00:00:00 2001 From: zakk Date: Fri, 26 Aug 2005 04:48:05 +0000 Subject: Itsa me, quake3io! git-svn-id: svn://svn.icculus.org/quake3/trunk@2 edf5b092-35ff-0310-97b2-ce42778d08ea --- code/q3_ui/Conscript | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100755 code/q3_ui/Conscript (limited to 'code/q3_ui/Conscript') diff --git a/code/q3_ui/Conscript b/code/q3_ui/Conscript new file mode 100755 index 0000000..2387e25 --- /dev/null +++ b/code/q3_ui/Conscript @@ -0,0 +1,93 @@ +# Q3 ui building + +# qvm building against native: +# only native has ui_syscalls.c +# qvm uses a ui_syscalls.asm with equ stubs +# qvm has additional bg_lib.c + +Import qw( BASE_CFLAGS TARGET_DIR INSTALL_DIR NO_VM NO_SO CC CXX LINK ); + +$env = new cons( + # the code has the very bad habit of doing things like #include "../ui/ui_shared.h" + # this seems to confuse the dependency analysis, explicit toplevel includes seem to fix + CPPPATH => '#cgame:#game:#q3_ui', + CC => $CC, + CXX => $CXX, + LINK => $LINK, + ENV => { PATH => $ENV{PATH}, HOME => $ENV{HOME} }, + CFLAGS => $BASE_CFLAGS . '-fPIC', + LDFLAGS => '-shared -ldl -lm' +); + +# qvm building +# we heavily customize the cons environment +$vm_env = new cons( + # the code has the very bad habit of doing things like #include "../ui/ui_shared.h" + # this seems to confuse the dependency analysis, explicit toplevel includes seem to fix + CPPPATH => '#cgame:#game:#q3_ui', + CC => 'q3lcc', + CCCOM => '%CC %CFLAGS %_IFLAGS -c %< -o %>', + SUFOBJ => '.asm', + LINK => 'q3asm', + CFLAGS => '-DQ3_VM -S -Wf-target=bytecode -Wf-g', + # need to know where to find the compiler tools + ENV => { PATH => $ENV{PATH} . ":./qvmtools", }, +); + +# the file with vmMain function MUST be the first one of the list +@FILES = qw( + ui_main.c + ../game/bg_misc.c + ../game/q_math.c + ../game/q_shared.c + ui_addbots.c + ui_atoms.c + ui_cdkey.c + ui_cinematics.c + ui_confirm.c + ui_connect.c + ui_controls2.c + ui_credits.c + ui_demo2.c + ui_display.c + ui_gameinfo.c + ui_ingame.c + ui_menu.c + ui_mfield.c + ui_mods.c + ui_network.c + ui_options.c + ui_playermodel.c + ui_players.c + ui_playersettings.c + ui_preferences.c + ui_qmenu.c + ui_removebots.c + ui_serverinfo.c + ui_servers2.c + ui_setup.c + ui_sound.c + ui_sparena.c + ui_specifyserver.c + ui_splevel.c + ui_sppostgame.c + ui_spskill.c + ui_startserver.c + ui_team.c + ui_teamorders.c + ui_video.c + ); +$FILESREF = \@FILES; + +if ($NO_SO eq 0) +{ + Program $env 'uii386.so', @$FILESREF, '../ui/ui_syscalls.c'; + Install $env $INSTALL_DIR, 'uii386.so'; +} +if ($NO_VM eq 0) +{ + Depends $vm_env 'ui.qvm', '#qvmtools/q3lcc'; + Depends $vm_env 'ui.qvm', '#qvmtools/q3asm'; + Program $vm_env 'ui.qvm', @$FILESREF, '../game/bg_lib.c', '../ui/ui_syscalls.asm'; + Install $vm_env $INSTALL_DIR . '/vm', 'ui.qvm'; +} -- cgit v1.2.3