Add a static library target for CFC.
Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/3d5934cb Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/3d5934cb Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/3d5934cb Branch: refs/heads/master Commit: 3d5934cb575f92f4213e08ba25eacccca6ecc312 Parents: b004295 Author: Marvin Humphrey <[email protected]> Authored: Sat Nov 29 14:02:14 2014 -0800 Committer: Marvin Humphrey <[email protected]> Committed: Mon Mar 2 18:28:49 2015 -0800 ---------------------------------------------------------------------- compiler/common/charmonizer.main | 15 +++++++++++++++ 1 file changed, 15 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/3d5934cb/compiler/common/charmonizer.main ---------------------------------------------------------------------- diff --git a/compiler/common/charmonizer.main b/compiler/common/charmonizer.main index 9174d72..801c954 100644 --- a/compiler/common/charmonizer.main +++ b/compiler/common/charmonizer.main @@ -29,6 +29,9 @@ typedef struct SourceFileContext { chaz_MakeVar *common_test_objs; } SourceFileContext; +static const char cfc_version[] = "0.4.0"; +static const char cfc_major_version[] = "0.4"; + static void S_add_compiler_flags(struct chaz_CLI *cli); @@ -133,6 +136,17 @@ S_add_compiler_flags(struct chaz_CLI *cli) { } static void +S_add_staticlib_makefile_target(chaz_MakeFile *makefile) { + chaz_Lib *static_lib = chaz_Lib_new("cfc", chaz_Lib_STATIC, cfc_version, + cfc_major_version); + char *static_lib_filename = chaz_Lib_filename(static_lib); + chaz_MakeFile_add_rule(makefile, "static", static_lib_filename); + chaz_MakeFile_add_static_lib(makefile, static_lib, "$(COMMON_OBJS)"); + free(static_lib_filename); + chaz_Lib_destroy(static_lib); +} + +static void S_write_makefile(struct chaz_CLI *cli) { SourceFileContext sfc; @@ -219,6 +233,7 @@ S_write_makefile(struct chaz_CLI *cli) { /* Rules */ chaz_MakeFile_add_rule(makefile, "all", cfc_exe); + S_add_staticlib_makefile_target(makefile); chaz_MakeFile_add_lemon_exe(makefile, lemon_dir); chaz_MakeFile_add_lemon_grammar(makefile, parse_header);
