aboutsummaryrefslogtreecommitdiffstats
path: root/code/unix/Conscript-client
diff options
context:
space:
mode:
Diffstat (limited to 'code/unix/Conscript-client')
-rwxr-xr-xcode/unix/Conscript-client265
1 files changed, 265 insertions, 0 deletions
diff --git a/code/unix/Conscript-client b/code/unix/Conscript-client
new file mode 100755
index 0000000..dc2e8b8
--- /dev/null
+++ b/code/unix/Conscript-client
@@ -0,0 +1,265 @@
+# full client build script
+
+Import qw( BASE_CFLAGS BASE_LDFLAGS INSTALL_DIR BUILD_DIR TARGETNAME CC CXX LINK );
+
+# splines
+$env_splines = new cons(
+ CC => $CC,
+ CXX => $CXX,
+ LINK => $LINK,
+ ENV => { PATH => $ENV{PATH}, HOME => $ENV{HOME} }
+ );
+
+@SPLINES_FILES = qw(
+ ../splines/math_angles.cpp
+ ../splines/math_matrix.cpp
+ ../splines/math_quaternion.cpp
+ ../splines/math_vector.cpp
+ ../splines/q_parse.cpp
+ ../splines/q_shared.cpp
+ ../splines/splines.cpp
+ ../splines/util_str.cpp
+ );
+$SPLINES_FILESREF = \@SPLINES_FILES;
+
+Library $env_splines 'splines', @$SPLINES_FILESREF;
+
+# botlib
+# FIXME TTimo
+# we already deal with botlib on dedicated target
+# the compilation options are a bit different but we could certainly rely on
+# the same Conscript and make things cleaner
+
+$env_botlib = new cons(
+ CC => $CC,
+ CXX => $CXX,
+ LINK => $LINK,
+ ENV => { PATH => $ENV{PATH}, HOME => $ENV{HOME} },
+ CFLAGS => $BASE_CFLAGS . '-DBOTLIB '
+);
+
+@BOTLIB_FILES = qw(
+ ../botlib/be_aas_bspq3.c
+ ../botlib/be_aas_cluster.c
+ ../botlib/be_aas_debug.c
+ ../botlib/be_aas_entity.c
+ ../botlib/be_aas_file.c
+ ../botlib/be_aas_main.c
+ ../botlib/be_aas_move.c
+ ../botlib/be_aas_optimize.c
+ ../botlib/be_aas_reach.c
+ ../botlib/be_aas_route.c
+ ../botlib/be_aas_routealt.c
+ ../botlib/be_aas_sample.c
+ ../botlib/be_ai_char.c
+ ../botlib/be_ai_chat.c
+ ../botlib/be_ai_gen.c
+ ../botlib/be_ai_goal.c
+ ../botlib/be_ai_move.c
+ ../botlib/be_ai_weap.c
+ ../botlib/be_ai_weight.c
+ ../botlib/be_ea.c
+ ../botlib/be_interface.c
+ ../botlib/l_crc.c
+ ../botlib/l_libvar.c
+ ../botlib/l_log.c
+ ../botlib/l_memory.c
+ ../botlib/l_precomp.c
+ ../botlib/l_script.c
+ ../botlib/l_struct.c
+);
+$BOTLIB_REF = \@BOTLIB_FILES;
+
+Library $env_botlib 'botlib', @$BOTLIB_REF;
+
+# jpeg
+# NOTE TTimo we might need this one on other targets
+$env_jpeglib = new cons(
+ CC => $CC,
+ CXX => $CXX,
+ LINK => $LINK,
+ ENV => { PATH => $ENV{PATH}, HOME => $ENV{HOME} },
+ CFLAGS => $BASE_CFLAGS
+ );
+
+@JPEGLIB_FILES = qw(
+ ../jpeg-6/jcapimin.c
+ ../jpeg-6/jchuff.c
+ ../jpeg-6/jcinit.c
+ ../jpeg-6/jccoefct.c
+ ../jpeg-6/jccolor.c
+ ../jpeg-6/jfdctflt.c
+ ../jpeg-6/jcdctmgr.c
+ ../jpeg-6/jcphuff.c
+ ../jpeg-6/jcmainct.c
+ ../jpeg-6/jcmarker.c
+ ../jpeg-6/jcmaster.c
+ ../jpeg-6/jcomapi.c
+ ../jpeg-6/jcparam.c
+ ../jpeg-6/jcprepct.c
+ ../jpeg-6/jcsample.c
+ ../jpeg-6/jdapimin.c
+ ../jpeg-6/jdapistd.c
+ ../jpeg-6/jdatasrc.c
+ ../jpeg-6/jdcoefct.c
+ ../jpeg-6/jdcolor.c
+ ../jpeg-6/jddctmgr.c
+ ../jpeg-6/jdhuff.c
+ ../jpeg-6/jdinput.c
+ ../jpeg-6/jdmainct.c
+ ../jpeg-6/jdmarker.c
+ ../jpeg-6/jdmaster.c
+ ../jpeg-6/jdpostct.c
+ ../jpeg-6/jdsample.c
+ ../jpeg-6/jdtrans.c
+ ../jpeg-6/jerror.c
+ ../jpeg-6/jidctflt.c
+ ../jpeg-6/jmemmgr.c
+ ../jpeg-6/jmemnobs.c
+ ../jpeg-6/jutils.c
+ );
+$JPEGLIB_REF = \@JPEGLIB_FILES;
+
+Library $env_jpeglib 'jpeglib', @$JPEGLIB_REF;
+
+# NOTE TTimo this requires patched cons version to work (see unix/cons)
+%nasm_hash = new cons()->copy(
+ CC => 'nasm',
+ CCCOM => '%CC -f elf -o %> %<'
+);
+$nasm_hash{SUFMAP}{'.nasm'} = 'build::command::cc';
+$nasm_env = new cons(%nasm_hash);
+
+Library $nasm_env 'asmlib', 'ftol.nasm', 'snapvector.nasm';
+
+# compiling files with inlined assembly
+$env_inlined = new cons(
+ CFLAGS => '-DELF -x assembler-with-cpp'
+ );
+
+Library $env_inlined 'inlinelib', '../unix/matha.s', '../unix/snd_mixa.s';
+
+# putting it all together
+
+$env = new cons(
+ CC => $CC,
+ CXX => $CXX,
+ LINK => $LINK,
+ ENV => { PATH => $ENV{PATH}, HOME => $ENV{HOME} },
+ CFLAGS => $BASE_CFLAGS,
+ LIBS => ' ' . $BUILD_DIR . '/unix/splines.a '
+ . $BUILD_DIR . '/unix/botlib.a '
+ . $BUILD_DIR . '/unix/jpeglib.a '
+ . $BUILD_DIR . '/unix/asmlib.a '
+ . $BUILD_DIR . '/unix/inlinelib.a '
+ . $BASE_LDFLAGS
+ . '-L/usr/X11R6/lib -lX11 -lXext -lXxf86dga -lXxf86vm -ldl -lm'
+);
+
+@RENDERER_FILES = qw(
+ ../renderer/tr_animation.c
+ ../renderer/tr_backend.c
+ ../renderer/tr_bsp.c
+ ../renderer/tr_cmds.c
+ ../renderer/tr_curve.c
+ ../renderer/tr_flares.c
+ ../renderer/tr_font.c
+ ../renderer/tr_image.c
+ ../renderer/tr_init.c
+ ../renderer/tr_light.c
+ ../renderer/tr_main.c
+ ../renderer/tr_marks.c
+ ../renderer/tr_mesh.c
+ ../renderer/tr_model.c
+ ../renderer/tr_noise.c
+ ../renderer/tr_scene.c
+ ../renderer/tr_shade.c
+ ../renderer/tr_shade_calc.c
+ ../renderer/tr_shader.c
+ ../renderer/tr_shadows.c
+ ../renderer/tr_sky.c
+ ../renderer/tr_surface.c
+ ../renderer/tr_world.c
+ );
+$RENDERER_REF = \@RENDERER_FILES;
+
+@CLIENT_FILES = qw(
+ ../client/cl_cgame.c
+ ../client/cl_cin.c
+ ../client/cl_console.c
+ ../client/cl_input.c
+ ../client/cl_keys.c
+ ../client/cl_main.c
+ ../client/cl_net_chan.c
+ ../client/cl_parse.c
+ ../client/cl_scrn.c
+ ../client/cl_ui.c
+ );
+$CLIENT_REF = \@CLIENT_FILES;
+
+@COMMON_FILES = qw(
+ ../qcommon/cm_load.c
+ ../qcommon/cm_patch.c
+ ../qcommon/cm_polylib.c
+ ../qcommon/cm_test.c
+ ../qcommon/cm_trace.c
+ ../qcommon/cmd.c
+ ../qcommon/common.c
+ ../qcommon/cvar.c
+ ../qcommon/files.c
+ ../qcommon/md4.c
+ ../qcommon/msg.c
+ ../qcommon/net_chan.c
+ ../qcommon/huffman.c
+ ../qcommon/unzip.c
+ );
+$COMMON_REF = \@COMMON_FILES;
+
+@SOUND_FILES = qw(
+ ../client/snd_adpcm.c
+ ../client/snd_dma.c
+ ../client/snd_mem.c
+ ../client/snd_mix.c
+ ../client/snd_wavelet.c
+ );
+$SOUND_REF = \@SOUND_FILES;
+
+@UNIX_FILES = qw(
+ ../unix/unix_main.c
+ ../unix/unix_net.c
+ ../unix/unix_shared.c
+ ../unix/linux_common.c
+ ../unix/linux_qgl.c
+ ../unix/linux_glimp.c
+ ../unix/linux_joystick.c
+ ../unix/linux_snd.c
+ ../unix/linux_signals.c
+ );
+$UNIX_REF = \@UNIX_FILES;
+
+@SERVER_FILES = qw(
+ ../server/sv_bot.c
+ ../server/sv_ccmds.c
+ ../server/sv_client.c
+ ../server/sv_game.c
+ ../server/sv_init.c
+ ../server/sv_main.c
+ ../server/sv_net_chan.c
+ ../server/sv_snapshot.c
+ ../server/sv_world.c
+ );
+$SERVER_REF = \@SERVER_FILES;
+
+# FIXME TTimo vm_<cpu>.c
+@VM_FILES = qw(
+ ../qcommon/vm.c
+ ../qcommon/vm_x86.c
+ ../qcommon/vm_interpreted.c
+ );
+$VM_REF = \@VM_FILES;
+
+# FIXME: import the CPU string to build the name of the target
+Program $env $TARGETNAME, '../game/q_shared.c', '../game/q_math.c',
+ @$RENDERER_REF, @$CLIENT_REF, @$COMMON_REF, @$SOUND_REF,
+ @$UNIX_REF, @$SERVER_REF, @$VM_REF;
+Install $env $INSTALL_DIR, $TARGETNAME;