diff --git a/bin/trick-CP b/bin/trick-CP index 3b87cf93..c1c9d6b3 100755 --- a/bin/trick-CP +++ b/bin/trick-CP @@ -55,12 +55,6 @@ endif ifneq ($(wildcard ${TRICK_HOME}/share/trick/makefiles/Makefile.common),) include ${TRICK_HOME}/share/trick/makefiles/Makefile.common -S_MAIN = S_main_${TRICK_HOST_CPU}.exe -ifeq ($(MAKECMDGOALS), test) - TRICK_HOST_CPU := $(shell $(TRICK_HOME)/bin/trick-gte TRICK_HOST_CPU)_test - S_MAIN = T_main_${TRICK_HOST_CPU}.exe -endif - ifndef TRICK_VERBOSE_BUILD PRINT_CP = $(info $(call COLOR,Running) configuration_processor) PRINT_ICG = $(info $(call COLOR,Running) ICG) @@ -70,6 +64,8 @@ ifndef TRICK_VERBOSE_BUILD endif all: + $(info Trick Build Process Complete) + test: TRICK_SYSTEM_CFLAGS += -DTRICK_UNIT_TEST test: TRICK_SYSTEM_CXXFLAGS += -DTRICK_UNIT_TEST @@ -86,12 +82,13 @@ $(TRICK_STATIC_LIB): @exit -1 # CP creates S_source.hh required for ICG and SWIG processing -S%source.hh S%source.cpp: S_define build/S_define.d | build - $(ECHO_CMD)$(TRICK_CPPC) $(TRICK_SFLAGS) $(TRICK_SYSTEM_SFLAGS) -M -MT S_source.hh -MF build/S_define.d -x c++ S_define +S_source.hh: S_define | build $(PRINT_CP) $(ECHO_CMD)${TRICK_HOME}/$(LIBEXEC)/trick/configuration_processor $(TRICK_CPFLAGS) -build/S_define.d: ; +build/Makefile_S_define: S_source.hh + $(PRINT_S_DEF_DEPS) + $(ECHO_CMD)$(TRICK_CPPC) $(TRICK_SFLAGS) $(TRICK_SYSTEM_SFLAGS) -MM -MT S_source.hh -MF build/Makefile_S_define -x c++ S_define # Automatic and manual ICG rules ICG: @@ -141,16 +138,22 @@ Simulation make options:\n\ make spotless - Performs a clean\n\ make apocalypse - Performs a clean" --include S_overrides.mk CLEAN_TARGETS = tidy clean spotless distclean apocalypse ifeq ($(findstring ${MAKECMDGOALS},$(CLEAN_TARGETS)),) --include build/S_define.d +-include build/Makefile_S_define -include build/Makefile_src -include build/Makefile_src_deps -include build/Makefile_io_src -include build/Makefile_swig -include build/Makefile_ICG --include build/Makefile_convert_swig +endif +-include S_overrides.mk +-include build/Makefile_overrides + +ifeq ($(MAKECMDGOALS),) + $(info $(call COLOR,Building with the following compilation flags:)) + $(info TRICK_CFLAGS = $(TRICK_CFLAGS)) + $(info TRICK_CXXFLAGS = $(TRICK_CXXFLAGS)) endif else diff --git a/libexec/trick/make_makefile_src b/libexec/trick/make_makefile_src index 1eafa591..a3d7c348 100755 --- a/libexec/trick/make_makefile_src +++ b/libexec/trick/make_makefile_src @@ -206,32 +206,6 @@ foreach $k ( sort keys %files_by_dir ) { $_ = $k ; ($files_by_dir{$k}{dir_num} = $_) =~ s#^/## ; $files_by_dir{$k}{dir_num} =~ s/[\/.]/_/g ; - # if a particular directory had an override file, save that into memory - if (open OV_FILE, "$k/makefile_overrides") { - while ( ) { - s/(#.*)// ; - my ($comment) = $1 ; - s/\$[{(]CURDIR[})]\/(\S+)/$k\/$1/g ; - s/(?:\$[{(]CURDIR[})]\/)?(\S*)\$[{(]OBJ_DIR[})]/$k\/$1object_\${TRICK_HOST_CPU}/g ; - s/\$[{(]CURDIR[})]/$k/g ; - while ( s,/[^/]+/\.\.,, ) {} - s//$comment/ ; - if ( s/^objects\s*:\s*// ) { - foreach my $ext ( qw{c C cc cxx cpp CPLUSPLUS l y} ) { - $files_by_dir{$k}{overrides} .= "\$(MODEL_${ext}_OBJ_$files_by_dir{$k}{dir_num}): $_" ; - } - } - elsif ( s/^depend\s*:\s*// ) { - $files_by_dir{$k}{overrides} .= "depend_$files_by_dir{$k}{dir_num}: $_" ; - } - elsif ( s/([cfhy]|C|cc|cxx|cpp|CPLUSPLUS)_objects\s*:\s*// ) { - $files_by_dir{$k}{overrides} .= "\$(MODEL_$1_OBJ_$files_by_dir{$k}{dir_num}): $_" ; - } - else { - $files_by_dir{$k}{overrides} .= $_ ; - } - } - } } my $wd = abs_path(cwd()) ; @@ -259,11 +233,12 @@ ifndef TRICK_VERBOSE_BUILD PRINT_COMPILE = \$(info \$(call COLOR,Compiling) \$<) PRINT_EXE_LINK = \$(info \$(call COLOR,Linking) \$@) PRINT_SIE = \$(info \$(call COLOR,Writing) \$@) - ifeq (\$(MAKECMDGOALS),) - \$(info \$(call COLOR,Building with the following compilation flags:)) - \$(info TRICK_CFLAGS = \$(TRICK_CFLAGS)) - \$(info TRICK_CXXFLAGS = \$(TRICK_CXXFLAGS)) - endif +endif + +S_MAIN = S_main_\${TRICK_HOST_CPU}.exe +ifeq (\$(MAKECMDGOALS), test) + TRICK_HOST_CPU := \$(shell \$(TRICK_HOME)/bin/trick-gte TRICK_HOST_CPU)_test + S_MAIN = T_main_\${TRICK_HOST_CPU}.exe endif # S_OBJECTS ==================================================================== @@ -285,19 +260,8 @@ $num_inc_objs = 0 ; # List out all of the object files and put the list in a file that we can pass to the linker. # Passing all of them directly to the linker in the command line can exceed the line limit. open MODEL_LINK_LIST, ">build/model_link_list" or die "Could not open build/model_link_list" ; -#foreach $k ( sort keys %files_by_dir ) { -# foreach my $ext ( qw{ c C cc cxx cpp c++ } ) { -# if ( scalar @{$files_by_dir{$k}{$ext}} ne 0 ) { -# foreach $f ( @{$files_by_dir{$k}{$ext}} ) { -# print MAKEFILE " \\\n build$k/$files_by_dir{$k}{src_dir}$f" . "o" ; -# print MODEL_LINK_LIST "build$k/$files_by_dir{$k}{src_dir}$f" . "o\n" ; -# } -# $num_inc_objs++ ; -# } -# } -#} foreach my $ext ( qw{ c C cc cxx cpp c++ } ) { - print MAKEFILE "\n\nMODEL_${ext}_OBJECTS =" ; + print MAKEFILE "\n\nMODEL_${ext}_OBJECTS :=" ; foreach $k ( sort keys %files_by_dir ) { if ( scalar @{$files_by_dir{$k}{$ext}} ne 0 ) { foreach $f ( @{$files_by_dir{$k}{$ext}} ) { @@ -310,7 +274,7 @@ foreach my $ext ( qw{ c C cc cxx cpp c++ } ) { } close MODEL_LINK_LIST ; -print MAKEFILE "\n\nMODEL_OBJECTS =" ; +print MAKEFILE "\n\nMODEL_OBJECTS :=" ; foreach my $ext ( qw{ c C cc cxx cpp c++ } ) { print MAKEFILE " \${MODEL_${ext}_OBJECTS}" ; } @@ -377,7 +341,6 @@ foreach ( @all_read_only_libs ) { print MAKEFILE " all: \$(S_MAIN) S_sie.resource -\t\$(info Trick Build Process Complete) \$(S_MAIN): \$(TRICK_STATIC_LIB) \$(S_OBJECTS) \$(MODEL_OBJECTS) \t\$(PRINT_EXE_LINK) @@ -392,12 +355,39 @@ S_sie.resource: \$(S_MAIN) \t\$(ECHO_CMD)./\$(S_MAIN) sie\n" ; # write out the override files we have read in +open MAKEFILEOVER, ">build/Makefile_overrides" or die "Could not open build/Makefile_overrides" ; foreach $k ( sort keys %files_by_dir ) { - if ( exists $files_by_dir{$k}{overrides} ) { - print MAKEFILE "\n# Overrides from $k\n\n" ; - print MAKEFILE "$files_by_dir{$k}{overrides}\n" ; + # if a particular directory had an override file, save that into memory + if (open OV_FILE, "$k/makefile_overrides") { + while ( ) { + s/(#.*)// ; + my ($comment) = $1 ; + s/\$[{(]CURDIR[})]\/(\S+)/$k\/$1/g ; + s/(?:\$[{(]CURDIR[})]\/)?(\S*)\$[{(]OBJ_DIR[})]/$k\/$1object_\${TRICK_HOST_CPU}/g ; + s/\$[{(]CURDIR[})]/$k/g ; + while ( s,/[^/]+/\.\.,, ) {} + s//$comment/ ; + if ( s/^objects\s*:\s*// ) { + foreach my $ext ( qw{c C cc cxx cpp CPLUSPLUS l y} ) { + $files_by_dir{$k}{overrides} .= "\$(MODEL_${ext}_OBJ_$files_by_dir{$k}{dir_num}): $_" ; + } + } + elsif ( s/^depend\s*:\s*// ) { + $files_by_dir{$k}{overrides} .= "depend_$files_by_dir{$k}{dir_num}: $_" ; + } + elsif ( s/([cfhy]|C|cc|cxx|cpp|CPLUSPLUS)_objects\s*:\s*// ) { + $files_by_dir{$k}{overrides} .= "\$(MODEL_$1_OBJ_$files_by_dir{$k}{dir_num}): $_" ; + } + else { + $files_by_dir{$k}{overrides} .= $_ ; + } + } + close OV_FILE ; + print MAKEFILEOVER "\n# Overrides from $k\n\n" ; + print MAKEFILEOVER "$files_by_dir{$k}{overrides}\n" ; } } +close MAKEFILEOVER ; # write out all of files we processed as dependencies to Makefile_src open MAKEFILEDEPS, ">build/Makefile_src_deps" or die "Could not open build/Makefile_src_deps" ; diff --git a/libexec/trick/make_makefile_swig b/libexec/trick/make_makefile_swig index 0ce77fe7..36be3b54 100755 --- a/libexec/trick/make_makefile_swig +++ b/libexec/trick/make_makefile_swig @@ -461,13 +461,6 @@ LINK_LISTS += \$(LD_FILELIST)build/py_link_list } } - open MAKEFILECONV , ">build/Makefile_convert_swig" or return ; - print MAKEFILECONV "build/convert_swig_last_run:" ; - foreach $f ( @files_to_process ) { - print MAKEFILECONV " \\\n $f" ; - } - close MAKEFILECONV ; - return ; }