]> git.mdlowis.com Git - proto/sclpl.git/commitdiff
Moved parser into a static lib
authorMichael D. Lowis <mike@mdlowis.com>
Tue, 18 Nov 2014 01:41:46 +0000 (20:41 -0500)
committerMichael D. Lowis <mike@mdlowis.com>
Tue, 18 Nov 2014 01:41:46 +0000 (20:41 -0500)
build.rb
source/libparse/grammar.c [moved from source/sclpl/grammar.c with 100% similarity]
source/libparse/grammar.h [moved from source/sclpl/grammar.h with 100% similarity]
source/libparse/lexer.c [moved from source/sclpl/lexer.c with 100% similarity]
source/libparse/lexer.h [moved from source/sclpl/lexer.h with 100% similarity]
source/libparse/parser.c [moved from source/sclpl/parser.c with 100% similarity]
source/libparse/parser.h [moved from source/sclpl/parser.h with 100% similarity]
source/libparse/scanner.c [moved from source/sclpl/scanner.c with 100% similarity]
source/libparse/scanner.h [moved from source/sclpl/scanner.h with 100% similarity]
source/libparse/tree.c [moved from source/sclpl/tree.c with 100% similarity]
source/libparse/tree.h [moved from source/sclpl/tree.h with 100% similarity]

index 74332802368f62a6c6f41a65af19e741f5cc4045..5394293d4b66e9653ed3d17dd4ab741c022ec12d 100755 (executable)
--- 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
similarity index 100%
rename from source/sclpl/lexer.c
rename to source/libparse/lexer.c
similarity index 100%
rename from source/sclpl/lexer.h
rename to source/libparse/lexer.h
similarity index 100%
rename from source/sclpl/tree.c
rename to source/libparse/tree.c
similarity index 100%
rename from source/sclpl/tree.h
rename to source/libparse/tree.h