9 SDCC_MISC = debugger/mcs51 sim/ucsim
10 SDCC_LIBS = support/cpp
11 SDCC_ASLINK = as/mcs51 as link
12 SDCC_PACKIHX = packihx
14 PKGS = $(SDCC_MISC) $(SDCC_LIBS) $(SDCC_ASLINK) \
15 src device/include device/lib $(SDCC_PACKIHX)
16 PKGS_TINI = $(SDCC_LIBS) $(SDCC_ASLINK) \
17 src device/include $(SDCC_PACKIHX)
22 # Compiling entire program or any subproject
23 # ------------------------------------------
26 tini: checkconf sdcc-tini
29 ifeq ($(CROSS_LIBGC),1)
30 $(MAKE) -C support/gc -f Makefile.cross
34 for lib in $(SDCC_LIBS); do $(MAKE) -C $$lib; done
40 for as in $(SDCC_ASLINK); do $(MAKE) -C $$as; done
43 for misc in $(SDCC_MISC); do $(MAKE) -C $$misc; done
46 $(MAKE) -C $(SDCC_PACKIHX)
49 $(MAKE) -C device/include
53 $(MAKE) -C device/include
54 $(MAKE) -C device/lib modelDS390
56 sdcc: sdcc-cc sdcc-aslink sdcc-misc sdcc-device sdcc-packihx
57 $(MAKE) -f main.mk all
59 sdcc-tini: sdcc-cc sdcc-aslink sdcc-device-tini sdcc-packihx
60 $(MAKE) -f main.mk all
62 # Some interesting sub rules
63 sdcc-bin: sdcc-cc sdcc-aslink sdcc-misc
65 sdcc-base: sdcc-cc sdcc-aslink
67 # Compiling and installing everything and runing test
68 # ---------------------------------------------------
70 $(MAKE) -f main.mk install
71 @for pkg in $(PKGS); do\
72 $(MAKE) -C $$pkg install ;\
76 $(MAKE) -f main.mk install
77 @for pkg in $(PKGS_TINI); do\
78 $(MAKE) -C $$pkg install ;\
80 $(MAKE) -C device/lib installDS390
84 # Deleting all the installed files
85 # --------------------------------
87 $(MAKE) -f main.mk uninstall
88 @for pkg in $(PKGS); do\
89 $(MAKE) -C $$pkg uninstall ;\
93 # Deleting all files created by building the program
94 # --------------------------------------------------
96 @echo "+ Cleaning root of the project..."
97 $(MAKE) -f clean.mk clean
98 @echo "+ Cleaning packages in their directories..."
99 for pkg in $(PKGS); do\
100 $(MAKE) PORTS="$(PORTS)" -C $$pkg clean ;\
104 # Deleting all files created by configuring or building the program
105 # -----------------------------------------------------------------
107 @echo "+ DistCleaning root of the project..."
108 $(MAKE) -f clean.mk distclean
109 @echo "+ DistCleaning packages using clean.mk..."
110 for pkg in $(PKGS); do\
111 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" distclean ;\
115 # Like clean but some files may still exist
116 # -----------------------------------------
118 $(MAKE) -f clean.mk mostlyclean
119 for pkg in $(PKGS); do\
120 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" mostlyclean ;\
124 # Deleting everything that can reconstructed by this Makefile. It deletes
125 # everything deleted by distclean plus files created by bison, stc.
126 # -----------------------------------------------------------------------
128 $(MAKE) -f clean.mk realclean
129 for pkg in $(PKGS); do\
130 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" realclean ;\
134 # Creating distribution
135 # ---------------------
137 @if [ -f devel ]; then\
138 rm -f devel; mkdist sdcc; touch devel;\
144 # Performing self-test
145 # --------------------
149 # Performing installation test
150 # ----------------------------
154 # Creating dependencies
155 # ---------------------
157 $(MAKE) -f main.mk dep
158 @for pkg in $(PKGS); do\
159 $(MAKE) -C $$pkg dep ;\
166 @if [ -f start ]; then \
168 `find . -newer start -type f -print` |\
169 gzip -9c >`date '+%m%d%H%M'`.tgz; \
171 echo "start file not found.\n"; \
176 'put(c)' -s $(STARTYEAR) *.cc *.h *.y *.l
179 # Remaking configuration
180 # ----------------------
181 configure: configure.in
184 main.mk: $(srcdir)/main_in.mk $(srcdir)/configure.in config.status
185 $(SHELL) ./config.status
189 makefiles: config.status
191 config.status: configure
192 $(SHELL) ./config.status --recheck
195 $(SHELL) ./config.status
200 @if [ -f devel ]; then\