From: Michael D. Lowis Date: Tue, 18 Nov 2014 01:41:46 +0000 (-0500) Subject: Moved parser into a static lib X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=4595e8ace7d8c261ad9c3c4b095ea37c14d33651;p=proto%2Fsclpl.git Moved parser into a static lib --- diff --git a/build.rb b/build.rb index 7433280..5394293 100755 --- a/build.rb +++ b/build.rb @@ -53,7 +53,10 @@ base_env = BuildEnv.new do |env| # Compiler options env["CFLAGS"] += ['-DLEAK_DETECT_LEVEL=1', '--std=c99', '-Wall', '-Wextra']#, '-Werror'] - env["CPPPATH"] += ['modules/libopts/source'] + Dir['modules/libcds/source/**/'] + env["CPPPATH"] += Dir['modules/libcds/source/**/'] + [ + 'modules/libopts/source', + 'source/libparse/', + ] end # Define the release environment @@ -79,19 +82,27 @@ end #------------------------------------------------------------------------------ # Release Build Targets #------------------------------------------------------------------------------ -main_env.Library('build/lib/libcds.a', FileList['modules/libcds/source/**/*.c']) -main_env.Library('build/lib/libopts.a', FileList['modules/libopts/source/**/*.c']) -main_env.Library('build/lib/libsrt.a', FileList['source/runtime/*.c']) -main_env.Program('build/bin/sclpl', - FileList['source/sclpl/*.c', 'build/lib/libopts.a', 'build/lib/libcds.a']) +# Build options parsing and data structures library +main_env.Library('build/lib/libcds.a', FileList['modules/libcds/source/**/*.c']) +main_env.Library('build/lib/libopts.a', FileList['modules/libopts/source/**/*.c']) +runtime_libs = ['build/lib/libopts.a', 'build/lib/libcds.a'] + +# Build the parser as a library +compiler_libs = ['build/lib/libparse.a'] + runtime_libs +main_env.Library('build/lib/libparse.a', FileList['source/libparse/*.c']) +main_env.Program('build/bin/sclpl', FileList['source/sclpl/*.c'] + compiler_libs) + +# Build the sclpl runtime library +main_env.Library('build/lib/libsrt.a', FileList['source/runtime/*.c']) main_env.Install('build/include/sclpl.h', 'source/runtime/sclpl.h') #------------------------------------------------------------------------------ # Test Build Targets #------------------------------------------------------------------------------ if Opts[:profile].include? "test" - test_env.Program('build/bin/sclpl-test', - FileList['source/sclpl/*.c', 'build/lib/libopts.a', 'build/lib/libcds.a']) + compiler_libs = ['build/lib/libparse-test.a'] + runtime_libs + test_env.Library('build/lib/libparse-test.a', FileList['source/libparse/*.c']) + test_env.Program('build/bin/sclpl-test', FileList['source/sclpl/*.c'] + compiler_libs) test_env.Command('RSpec', [], 'CMD' => [ 'rspec', '--pattern', 'spec/**{,/*/**}/*_spec.rb', '--format', 'documentation']) end diff --git a/source/sclpl/grammar.c b/source/libparse/grammar.c similarity index 100% rename from source/sclpl/grammar.c rename to source/libparse/grammar.c diff --git a/source/sclpl/grammar.h b/source/libparse/grammar.h similarity index 100% rename from source/sclpl/grammar.h rename to source/libparse/grammar.h diff --git a/source/sclpl/lexer.c b/source/libparse/lexer.c similarity index 100% rename from source/sclpl/lexer.c rename to source/libparse/lexer.c diff --git a/source/sclpl/lexer.h b/source/libparse/lexer.h similarity index 100% rename from source/sclpl/lexer.h rename to source/libparse/lexer.h diff --git a/source/sclpl/parser.c b/source/libparse/parser.c similarity index 100% rename from source/sclpl/parser.c rename to source/libparse/parser.c diff --git a/source/sclpl/parser.h b/source/libparse/parser.h similarity index 100% rename from source/sclpl/parser.h rename to source/libparse/parser.h diff --git a/source/sclpl/scanner.c b/source/libparse/scanner.c similarity index 100% rename from source/sclpl/scanner.c rename to source/libparse/scanner.c diff --git a/source/sclpl/scanner.h b/source/libparse/scanner.h similarity index 100% rename from source/sclpl/scanner.h rename to source/libparse/scanner.h diff --git a/source/sclpl/tree.c b/source/libparse/tree.c similarity index 100% rename from source/sclpl/tree.c rename to source/libparse/tree.c diff --git a/source/sclpl/tree.h b/source/libparse/tree.h similarity index 100% rename from source/sclpl/tree.h rename to source/libparse/tree.h