#!/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 { print "Warning: Ignoring unrecognized argument $arg\n" } } 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