#!/usr/bin/perl # It is so hard getting the absolute path of the current script in bash # so I converted CP back to perl. :) use File::Basename ; use Cwd ; use Cwd 'abs_path'; $trick_bin = dirname(abs_path($0)) ; $trick_home = dirname($trick_bin) ; #### Handle arguments #### $numArgs = $#ARGV + 1; $makefileAddArgs = ' '; foreach $argnum (0 .. $#ARGV) { $arg = $ARGV[$argnum]; if ($arg =~ /(\w+)=(\w+)/ ) { $makefileAddArgs = $makefileAddArgs . $1 . "=" . $2 . " "; } elsif ($arg =~ /-d/ ) { $makefileAddArgs = $makefileAddArgs . " debug "; } elsif ($arg =~ /-t/ ) { $makefileAddArgs = $makefileAddArgs . " test "; } else { $ENV{TRICK_CPFLAGS} .= " $arg" ; } } if ( -f "S_define" ) { if ( not -w "." ) { print getcwd() , " is not writable\n" ; print "CP aborted\n" ; exit 1 ; } unlink "build/Makefile_sim", "makefile" ; $makefile_text = do { local $/; } ; $makefile_text =~ s/SUB_TRICK_HOME/$trick_home/ ; $makefile_text =~ s/SUB_TRICK_BIN/$trick_bin/ ; open MAKEFILE, ">makefile" ; print MAKEFILE $makefile_text ; close MAKEFILE ; system("make -f makefile " . $makefileAddArgs) ; exit $? >> 8; } else { print "S_define does not exist" ; exit 1 ; } __END__ # CP found at SUB_TRICK_BIN ifndef TRICK_HOME export TRICK_HOME := SUB_TRICK_HOME endif -include ${TRICK_HOME}/share/trick/makefiles/Makefile.sim -include S_overrides.mk ifndef CLEAN_RULES_DEFINED no_makefile_sim: @echo ${TRICK_HOME}/share/trick/makefiles/Makefile.sim not found exit -1 tidy: -rm -f S_source.hh S_sie.resource -rm -f S_main* T_main* -rm -f build/Makefile_* -rm -f S_default.dat clean: tidy -rm -f DP_Product/DP_rt_frame DP_Product/DP_rt_itimer -rm -f DP_Product/DP_rt_jobs DP_Product/DP_rt_timeline DP_Product/DP_mem_stats -rm -rf build trick @ echo "Removed build directory" spotless: clean distclean: clean -rm -f makefile apocalypse: distclean @echo "I love the smell of napalm in the morning" endif