diff options
Diffstat (limited to 'code/game/Conscript')
-rw-r--r-- | code/game/Conscript | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/code/game/Conscript b/code/game/Conscript deleted file mode 100644 index 5fdf815..0000000 --- a/code/game/Conscript +++ /dev/null @@ -1,140 +0,0 @@ -# game building -# builds the game for vanilla Q3 and TA - -# there are slight differences between Q3 and TA build: -# -DMISSIONPACK -# the config is passed in the imported variable TARGET_DIR - -# qvm building against native: -# only native has g_syscalls.c -# only qvm has ../game/bg_lib.c -# qvm uses a custom g_syscalls.asm with equ stubs - -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' -); - -# for TA, use -DMISSIONPACK -%ta_env_hash = $env->copy( - CPPPATH => '#cgame:#game:#ui' - ); -$ta_env_hash{CFLAGS} = '-DMISSIONPACK ' . $ta_env_hash{CFLAGS}; -$ta_env = new cons(%ta_env_hash); - -# 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", }, -); - -# TA qvm building -%vm_ta_env_hash = $vm_env->copy( - CPPPATH => '#cgame:#game:#ui' - ); -$vm_ta_env_hash{CFLAGS} = '-DMISSIONPACK ' . $vm_ta_env_hash{CFLAGS}; -$vm_ta_env = new cons(%vm_ta_env_hash); - -# the file with vmMain function MUST be the first one of the list -@FILES = qw( - g_main.c - ai_chat.c - ai_cmd.c - ai_dmnet.c - ai_dmq3.c - ai_main.c - ai_team.c - ai_vcmd.c - bg_misc.c - bg_pmove.c - bg_slidemove.c - g_active.c - g_arenas.c - g_bot.c - g_client.c - g_cmds.c - g_combat.c - g_items.c - g_mem.c - g_misc.c - g_missile.c - g_mover.c - g_session.c - g_spawn.c - g_svcmds.c - g_target.c - g_team.c - g_trigger.c - g_utils.c - g_weapon.c - q_math.c - q_shared.c - ); -$FILESREF = \@FILES; - -# only in .so -# (VM uses a custom .asm with equ stubs) -@SO_FILES = qw( - g_syscalls.c - ); -$SO_FILESREF = \@SO_FILES; - -# only for VM -@VM_FILES = qw( - bg_lib.c - g_syscalls.asm - ); -$VM_FILESREF = \@VM_FILES; - -# FIXME CPU string? -# NOTE: $env $ta_env and $vm_env $vm_ta_env may not be necessary -# we could alter the $env and $ta_env based on $TARGET_DIR -# doing it this way to ensure homogeneity with cgame building -if ($TARGET_DIR eq 'Q3') -{ - if ($NO_SO eq 0) - { - Program $env 'qagamei386.so', @$FILESREF, @$SO_FILESREF; - Install $env $INSTALL_DIR, 'qagamei386.so'; - } - if ($NO_VM eq 0) - { - Depends $vm_env 'qagame.qvm', '#qvmtools/q3lcc'; - Depends $vm_env 'qagame.qvm', '#qvmtools/q3asm'; - Program $vm_env 'qagame.qvm', @$FILESREF, @$VM_FILESREF; - Install $vm_env $INSTALL_DIR . '/vm', 'qagame.qvm'; - } -} -else -{ - if ($NO_SO eq 0) - { - Program $ta_env 'qagamei386.so', @$FILESREF, @$SO_FILESREF; - Install $ta_env $INSTALL_DIR, 'qagamei386.so'; - } - if ($NO_VM eq 0) - { - Depends $vm_env 'qagame.qvm', '#qvmtools/q3lcc'; - Depends $vm_env 'qagame.qvm', '#qvmtools/q3asm'; - Program $vm_ta_env 'qagame.qvm', @$FILESREF, @$VM_FILESREF; - Install $vm_ta_env $INSTALL_DIR . '/vm', 'qagame.qvm'; - } -} |