refactor
[carveJwlIkooP6JGAAIwe30JlM.git] / build.c
1 #include <time.h>
2 #include "vg/vg_platform.h"
3 #include "vg/vg_log.h"
4 #include "vg/vg_opt.h"
5 #include "vg/vg_build.h"
6
7 /*
8 * c build.c --release --clang
9 * c build.c --clang -p
10 * c build.c --file=game -rc --clang --play
11 */
12
13 int compiled_something = 0;
14
15 void build_server( enum compiler compiler )
16 {
17 vg_build_start( "skaterift_server", compiler );
18 vg_build_object( "server.c " );
19 vg_build_link( "-lm -lsdkencryptedappticket -lsteam_api " );
20 vg_build_library_dir( "-L./vg/dep/steam " );
21
22 vg_build_bin_dependency_file( "vg/dep/steam/steamclient.so" );
23 vg_build_bin_dependency_file( "vg/dep/steam/libsteam_api.so" );
24 vg_build_bin_dependency_file( "vg/dep/steam/libsdkencryptedappticket.so" );
25
26 vg_build();
27 compiled_something = 1;
28 }
29
30 void build_game( enum compiler compiler )
31 {
32 vg_build_start( "skaterift", compiler );
33 vg_build_object( "skaterift.c " );
34 vg_build_add_link_for_graphics();
35 vg_build_add_link_for_game();
36
37 vg_build_copy_graphics_dependencies();
38 vg_build_copy_game_dependencies();
39
40 vg_build_symbolic_link( "textures_src", "textures" );
41 vg_build_symbolic_link( "models_src", "models" );
42 vg_build_symbolic_link( "maps_src", "maps" );
43 vg_build_symbolic_link( "sound_src", "sound" );
44 vg_build_syscall( "mkdir -p %s/cfg", vg_compiler.build_dir );
45
46 vg_build();
47 compiled_something = 1;
48 }
49
50 int main( int argc, char *argv[] )
51 {
52 time_t uid = time(NULL);
53
54 char *arg;
55 while( vg_argp( argc, argv ) )
56 {
57 if( vg_long_opt( "debug" ) || vg_opt( 'd' ) )
58 vg_build_mode_debug();
59
60 if( vg_long_opt( "release" ) || vg_opt( 'r' ) )
61 vg_build_mode_release();
62
63 if( vg_long_opt( "clang-server" ) )
64 build_server( k_compiler_clang );
65
66 if( vg_long_opt( "clang" ) )
67 build_game( k_compiler_clang );
68
69 if( vg_long_opt( "gcc" ) )
70 build_game( k_compiler_gcc );
71
72 if( vg_long_opt( "mingw" ) )
73 build_game( k_compiler_mingw );
74
75 if( vg_opt('p') || vg_long_opt("run") )
76 {
77 chdir( vg_compiler.build_dir );
78 if( vg_compiler.compiler == k_compiler_mingw )
79 vg_build_syscall( "wine %s.exe", vg_compiler.name );
80 else
81 vg_build_syscall( "./%s", vg_compiler.name );
82 chdir( "../../" );
83 }
84
85 if( vg_long_opt( "tar" ) || vg_opt( 't' ) )
86 {
87 vg_build_syscall( "mkdir -p dist" );
88 if( compiled_something )
89 vg_build_syscall( "tar -chzvf dist/%s-%u.tar.gz %s",
90 vg_compiler.name, uid, vg_compiler.build_dir );
91 }
92
93 if( vg_long_opt( "zip" ) || vg_opt( 'z' ) )
94 {
95 vg_build_syscall( "mkdir -p dist" );
96 if( compiled_something )
97 vg_build_syscall( "zip -r9 dist/%s-%u.zip %s",
98 vg_compiler.name, uid, vg_compiler.build_dir );
99 }
100 }
101 }