9 SDCC_MISC = debugger/mcs51 sim/ucsim
10 SDCC_LIBS = support/cpp
11 SDCC_ASLINK = as/mcs51 as link
13 PKGS = $(SDCC_MISC) $(SDCC_LIBS) $(SDCC_ASLINK) \
14 src device/include device/lib
20 # Compiling entire program or any subproject
21 # ------------------------------------------
25 ifeq ($(CROSS_LIBGC),1)
26 $(MAKE) -C support/gc -f Makefile.cross
30 for lib in $(SDCC_LIBS); do $(MAKE) -C $$lib; done
36 for as in $(SDCC_ASLINK); do $(MAKE) -C $$as; done
39 for misc in $(SDCC_MISC); do $(MAKE) -C $$misc; done
42 $(MAKE) -C device/include
45 sdcc: sdcc-cc sdcc-aslink sdcc-misc sdcc-device
46 $(MAKE) -f main.mk all
48 # Some interesting sub rules
49 sdcc-bin: sdcc-cc sdcc-aslink sdcc-misc
51 # Compiling and installing everything and runing test
52 # ---------------------------------------------------
54 $(MAKE) -f main.mk install
55 @for pkg in $(PKGS); do\
56 $(MAKE) -C $$pkg install ;\
60 # Deleting all the installed files
61 # --------------------------------
63 $(MAKE) -f main.mk uninstall
64 @for pkg in $(PKGS); do\
65 $(MAKE) -C $$pkg uninstall ;\
69 # Deleting all files created by building the program
70 # --------------------------------------------------
72 @echo "+ Cleaning root of the project..."
73 $(MAKE) -f clean.mk clean
74 @echo "+ Cleaning packages in their directories..."
75 for pkg in $(PKGS); do\
76 $(MAKE) PORTS="$(PORTS)" -C $$pkg clean ;\
80 # Deleting all files created by configuring or building the program
81 # -----------------------------------------------------------------
83 @echo "+ DistCleaning root of the project..."
84 $(MAKE) -f clean.mk distclean
85 @echo "+ DistCleaning packages using clean.mk..."
86 for pkg in $(PKGS); do\
87 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" distclean ;\
91 # Like clean but some files may still exist
92 # -----------------------------------------
94 $(MAKE) -f clean.mk mostlyclean
95 for pkg in $(PKGS); do\
96 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" mostlyclean ;\
100 # Deleting everything that can reconstructed by this Makefile. It deletes
101 # everything deleted by distclean plus files created by bison, stc.
102 # -----------------------------------------------------------------------
104 $(MAKE) -f clean.mk realclean
105 for pkg in $(PKGS); do\
106 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" realclean ;\
110 # Creating distribution
111 # ---------------------
113 @if [ -f devel ]; then\
114 rm -f devel; mkdist sdcc; touch devel;\
120 # Performing self-test
121 # --------------------
125 # Performing installation test
126 # ----------------------------
130 # Creating dependencies
131 # ---------------------
133 $(MAKE) -f main.mk dep
134 @for pkg in $(PKGS); do\
135 $(MAKE) -C $$pkg dep ;\
142 @if [ -f start ]; then \
144 `find . -newer start -type f -print` |\
145 gzip -9c >`date '+%m%d%H%M'`.tgz; \
147 echo "start file not found.\n"; \
152 'put(c)' -s $(STARTYEAR) *.cc *.h *.y *.l
155 # Remaking configuration
156 # ----------------------
157 configure: configure.in
160 main.mk: $(srcdir)/main_in.mk $(srcdir)/configure.in config.status
161 $(SHELL) ./config.status
165 makefiles: config.status
167 config.status: configure
168 $(SHELL) ./config.status --recheck
171 $(SHELL) ./config.status
176 @if [ -f devel ]; then\