X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Fclam%2Frules.def;h=4d0be0e8712b3933df947eb2cdd78fb555251c77;hb=d84cca001d859500e4273888332fea8ed9943f51;hp=2b506ab850568393cbfbcc0796187f8428c65cc6;hpb=2952ccf47b80174880141a7ecfa122089f349b8d;p=feisty_meow.git diff --git a/scripts/clam/rules.def b/scripts/clam/rules.def index 2b506ab8..4d0be0e8 100644 --- a/scripts/clam/rules.def +++ b/scripts/clam/rules.def @@ -29,12 +29,12 @@ endif # This rule halts make for some supposedly devastating reason. More # information should be printed out by the cause of the halt. %.halt: - @echo CLAM execution halted, the cause being $@... + @echo CLAM execution halted, the cause being: $@ $(HIDESH)$(CLAM_DIR)/exit_make.sh # Provides a time-stamp in the make log. show_date.%: - $(HIDER)echo "The time right now is $(shell date)" + $(HIDER)echo "{$(shell date)}" # The .make rule changes to the directory with the same first part of the # pattern and makes whatever projects are there. This is used by the build @@ -50,11 +50,13 @@ if [ -d $* ]; then \ else \ echo Skipping missing directory [$*]; \ fi' -#used to include message for first case: echo "Entering directory [$*]"; + +# always run the exes listed in RUN_TARGETS. +.PHONY: run_targets # "all" is the first target to execute in any makefile. we capture it and # use it to produce the requested actions. -all: start $(ACTUAL_FIRST_TARGETS) $(ACTUAL_TARGETS) $(ACTUAL_LAST_TARGETS) $(RUN_TARGETS:%=run_targets) finish +all: start $(ACTUAL_FIRST_TARGETS) $(ACTUAL_TARGETS) $(ACTUAL_LAST_TARGETS) run_targets finish # "start" announces the beginning of compilation. start: @@ -63,7 +65,7 @@ if [ ! -d "$(CLAM_TMP)" ]; then \ mkdir "$(CLAM_TMP)"; \ fi' ifeq "$(QUIET)" "" - $(HIDER)echo Project $(PROJECT) [$(shell basename $(shell dirname $(shell pwd) ) )/$(shell basename $(shell pwd) )] v. $(major).$(minor).$(revision).$(build). + $(HIDER)echo Project $(PROJECT) [$(shell basename $(shell dirname $(shell pwd) ) )/$(shell basename $(shell pwd) )] v. $(major).$(minor).$(revision).$(build) endif $(HIDER)rm -f $(FLAG_FILES) @@ -77,7 +79,7 @@ endif ifeq "$(NOT_FIRST_MAKE)" "" $(HIDESH) -c '\ if [ ! -f "$(FAILURE_FILE)" ]; then \ - $(SHELL) $(CLAM_DIR)/sound_play.sh $(CLAM_FINISH_SOUND); \ + $(SHELL) $(FEISTY_MEOW_SCRIPTS)/multimedia/sound_play.sh $(CLAM_FINISH_SOUND); \ fi' endif # toss the flag files so we do not see them again. @@ -85,84 +87,45 @@ endif # runs the programs specified in the RUN_TARGETS variable. run_targets: - $(HIDESH) -c '\ -if [ ! -z "$(RUN_TARGETS)" ]; then \ - if [ -f "$(DIRTY_FILE)" -o -f "$(SUBMAKE_FLAG)" ]; then \ - total_exitval=0; \ - for program_name in $(RUN_TARGETS); do \ - base=`basename $$program_name`; \ - "$$program_name"; \ - exitval=$$?; \ - if [ $$exitval -ne 0 ]; then \ - echo -e "ERROR: $$program_name at `date`"; \ - total_exitval=$$(($$total_exitval + 1)); \ - fi; \ - done; \ - if [ $$total_exitval -ne 0 ]; then \ - echo "FAILURE: errors occurred in RUN_TARGETS."; \ - fi; \ - fi; \ -fi' -#hmmm: run targets needs to work on a hierarchy. -#hmmm: old idea? exit $$total_exitval; \ + $(HIDESH)"$(CLAM_DIR)/target_runner.sh" # "make_subdirs" travels down each subdirectory and builds using make. make_subdirs: - $(HIDESH) -c '\ -for i in *; do \ - if [ -d $$i ]; then \ - if [ -f $$i/$(MAKEFILE_NAME) -a ! $$i -ef `pwd` ]; then \ - echo; \ - (cd $$i; $(MAKE) --silent NOT_FIRST_MAKE=t -f $(MAKEFILE_NAME) ); \ - else \ - echo Skipping makefile-less directory $$i...; \ - echo; \ - fi \ - fi \ -done; \ -exit 0' -##echo Entering $$i now...; + $(HIDESH)$(CLAM_DIR)/make_subdirs.sh # "clean" is a default target that removes object files, libs, executable # files and such that were created by the project. it invokes the makefile # again with the CLEAN variable defined so that this can be passed down into # all subsequent makes. -clean: - $(HIDER)$(MAKE) --silent CLEAN=t ready_to_clean +clean: set_cleaner_variable $(OTHER_CLEANS) scratch_other_cleans clean_subdirs ready_to_clean + @# no code here. -ready_to_clean: $(OTHER_CLEANS) clean_subdirs - @echo Whacking [$(CLEANUPS)]. +set_cleaner_variable: + $(eval CLEAN := true) + +scratch_other_cleans: + $(eval OTHER_CLEANS := ) + +ready_to_clean: + @echo Whacking [$(CLEANUPS)] $(HIDESH) -c '\ -echo the other cleans were: $(OTHER_CLEANS); \ -echo the clean list is: $(CLEANUPS); \ if [ ! -z "$(CLEANUPS)" ]; then \ - for i in $(CLEANUPS) nonexistentishfileforlist; do \ - rm -rf "$$i"; \ + for spork19 in $(CLEANUPS) nonexistentishfileforlist; do \ + rm -rf "$$spork19"; \ done \ fi' # "clean_subdirs" travels down each subdirectory and cleans using make. clean_subdirs: - $(HIDESH) -c '\ -for i in *; do \ - if [ -d "$$i" ]; then \ - if [ -f "$$i/$(MAKEFILE_NAME)" -a ! "$$i" -ef `pwd` ]; then \ - (cd "$$i"; $(MAKE) --silent NOT_FIRST_MAKE=t -f $(MAKEFILE_NAME) clean); \ - else \ - echo "Skipping makefile-less directory $$i..."; \ - fi \ - fi \ -done; \ -exit 0' -###echo Cleaning "$$i" now...; + $(HIDESH)$(CLAM_DIR)/clean_subdirs.sh # "rm_links" removes the files in the current directory that are links # to other files. this is only useful in a unix environment. rm_links: $(HIDESH) -c '\ -for i in *; do \ - if [ -h "$$i" ]; then \ - /bin/rm -f "$$i"; \ +for gujira26 in *; do \ + if [ -h "$$gujira26" ]; then \ + /bin/rm -f "$$gujira26"; \ fi \ done; \ exit 0'