version 0.5.2
[fw/sdcc] / sim / ucsim / Makefile
index 23904e79e39430d0db2f4746020787d4257a517d..b5c0278adc02a7b7c5cd6434fc399acd1a0ef262 100644 (file)
@@ -9,18 +9,20 @@ STARTYEAR     = 1997
 SHELL          = /bin/sh
 
 PRJDIR         = .
-PKGS           = cmd.src sim.src s51.src avr.src z80.src gui.src doc
+include packages.mk
+#PKGS          = cmd.src sim.src gui.src s51.src avr.src z80.src doc
 
 srcdir          = .
 
 
 # Compiling entire program or any subproject
 # ------------------------------------------
-all: main.mk
+all: checkconf
        $(MAKE) -f main.mk all
        @for pkg in $(PKGS); do\
          cd $$pkg && $(MAKE) $$pkg ; cd ..;\
        done
+       $(MAKE) -f main.mk main_app
 
 libs: main.mk
        $(MAKE) -f main.mk libs
@@ -28,6 +30,7 @@ libs: main.mk
 
 # Compiling and installing everything and runing test
 # ---------------------------------------------------
+.PHONY: install INSTALL Install
 install:
        $(MAKE) -f main.mk install
        @for pkg in $(PKGS); do\
@@ -47,9 +50,9 @@ uninstall:
 # Deleting all files created by building the program
 # --------------------------------------------------
 clean:
-       $(MAKE) -f clean.mk clean
+       $(MAKE) -f clean.mk clean EXEEXT=$(EXEEXT)
        @for pkg in $(PKGS); do\
-         $(MAKE) -C $$pkg -f clean.mk clean ;\
+         $(MAKE) -C $$pkg -f clean.mk clean EXEEXT=$(EXEEXT) ;\
        done
 
 
@@ -86,15 +89,25 @@ realclean: distclean
 # ---------------------
 dist: distclean
        @if [ -f devel ]; then\
-         rm -f devel; mkdist ucsim; touch devel;\
+         rm -f devel; mkdist; touch devel;\
        else\
-         mkdist ucsim;\
+         mkdist;\
        fi
 
 
 # Performing self-test
 # --------------------
 check:
+       $(MAKE) -f main.mk check
+       @for pkg in $(PKGS); do\
+         $(MAKE) -C $$pkg check ;\
+       done
+
+test:
+       $(MAKE) -f main.mk test
+       @for pkg in $(PKGS); do\
+         $(MAKE) -C $$pkg test ;\
+       done
 
 
 # Performing installation test
@@ -116,24 +129,31 @@ dep:
 putcopyright:
        'put(c)' -s $(STARTYEAR) *.cc *.h *.y *.l
 
+start:
+       date '+%Y.%m.%d-%H:%M' >.start
+
 newer: distclean
-       @if [ -f start ]; then \
+       @if [ -f .start ]; then \
          tar cvf - \
-           `find . -newer start -type f -print` |\
-         gzip -9c >ucsim-newer-`date '+%Y.%m.%d-%H:%M'`.tgz; \
+           `find . -newer .start -type f -print` |\
+         gzip -9c >ucsim-newer-`cat .start`_`date '+%Y.%m.%d-%H:%M'`_`hostname`.tgz; \
        else \
-         echo "start file not found.\n"; \
+         echo ".start file not found.\n"; \
          exit 1; \
        fi
 
 print-newer:
-       @if [ -f start ]; then \
-         find . -newer start -type f -print ;\
+       @if [ -f .start ]; then \
+         find . -newer .start -type f -print ;\
        else \
-         echo "start file not found.\n" ;\
+         echo ".start file not found.\n" ;\
          exit 1 ;\
        fi
 
+new_files:
+       diff -rNu $$HOME/clean-source/sdcc/sim/ucsim .|\
+       grep '^diff' | grep -v CVS | awk '{print $$4}'
+
 lines:
        @find . \( -name '*.[ch]' -o -name '*.cc' -o -name '*.hh' \) \
        -exec cat {} \; | clines
@@ -142,22 +162,40 @@ lines:
 # Remaking configuration
 # ----------------------
 configure: configure.in
-       $(SHELL) autoconf
+       @$(PRJDIR)/mkecho $(PRJDIR) "RE-CREATING CONFIGURE"
+       autoconf configure.in >configure
+       chmod 755 configure
+
+config.status: configure
+       @$(PRJDIR)/mkecho $(PRJDIR) "RE-CHECKING CONFIGURATION (re-creating config.status from configure)"
+       @if [ -x ./config.status ]; then \
+         ./config.status -recheck;\
+       else\
+         if [ -x ./conf ]; then\
+           ./conf;\
+         else\
+           ./configure;\
+         fi\
+       fi
 
-main.mk: $(srcdir)/main_in.mk $(srcdir)/configure.in config.status
+makefiles: config.status
+       @$(PRJDIR)/mkecho $(PRJDIR) "RE-MAKING MAKEFILES"
        $(SHELL) ./config.status
 
-config.status: configure
-       $(SHELL) ./config.status --recheck
+main.mk: $(srcdir)/main_in.mk config.status
+       @$(PRJDIR)/mkecho $(PRJDIR) "RE-MAKING MAIN.MK"
+       $(SHELL) ./config.status
+
+freshconf: echo_freshconf configure main.mk ddconfig.h
 
-makefiles:
+ddconfig.h: ddconfig_in.h config.status
        $(SHELL) ./config.status
 
-freshconf: main.mk
+echo_freshconf:
+       @$(PRJDIR)/mkecho $(PRJDIR) "FRESHCONF"
 
 checkconf:
-       @if [ -f devel ]; then\
-         $(MAKE) freshconf;\
-       fi
+       @$(PRJDIR)/mkecho $(PRJDIR) "CHECKCONF"
+       @if [ -f devel ]; then $(MAKE) freshconf; fi
 
 # End of Makefile