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
15 PKGS_TINI = $(SDCC_LIBS) $(SDCC_ASLINK) \
21 # Compiling entire program or any subproject
22 # ------------------------------------------
25 tini: checkconf sdcc-tini
28 ifeq ($(CROSS_LIBGC),1)
29 $(MAKE) -C support/gc -f Makefile.cross
33 for lib in $(SDCC_LIBS); do $(MAKE) -C $$lib; done
39 for as in $(SDCC_ASLINK); do $(MAKE) -C $$as; done
42 for misc in $(SDCC_MISC); do $(MAKE) -C $$misc; done
45 $(MAKE) -C device/include
49 $(MAKE) -C device/include
50 $(MAKE) -C device/lib modelDS390
52 sdcc: sdcc-cc sdcc-aslink sdcc-misc sdcc-device
53 $(MAKE) -f main.mk all
55 sdcc-tini: sdcc-cc sdcc-aslink sdcc-device-tini
56 $(MAKE) -f main.mk all
58 # Some interesting sub rules
59 sdcc-bin: sdcc-cc sdcc-aslink sdcc-misc
61 sdcc-base: sdcc-cc sdcc-aslink
63 # Compiling and installing everything and runing test
64 # ---------------------------------------------------
66 $(MAKE) -f main.mk install
67 @for pkg in $(PKGS); do\
68 $(MAKE) -C $$pkg install ;\
72 $(MAKE) -f main.mk install
73 @for pkg in $(PKGS_TINI); do\
74 $(MAKE) -C $$pkg install ;\
76 $(MAKE) -C device/lib installDS390
80 # Deleting all the installed files
81 # --------------------------------
83 $(MAKE) -f main.mk uninstall
84 @for pkg in $(PKGS); do\
85 $(MAKE) -C $$pkg uninstall ;\
89 # Deleting all files created by building the program
90 # --------------------------------------------------
92 @echo "+ Cleaning root of the project..."
93 $(MAKE) -f clean.mk clean
94 @echo "+ Cleaning packages in their directories..."
95 for pkg in $(PKGS); do\
96 $(MAKE) PORTS="$(PORTS)" -C $$pkg clean ;\
100 # Deleting all files created by configuring or building the program
101 # -----------------------------------------------------------------
103 @echo "+ DistCleaning root of the project..."
104 $(MAKE) -f clean.mk distclean
105 @echo "+ DistCleaning packages using clean.mk..."
106 for pkg in $(PKGS); do\
107 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" distclean ;\
111 # Like clean but some files may still exist
112 # -----------------------------------------
114 $(MAKE) -f clean.mk mostlyclean
115 for pkg in $(PKGS); do\
116 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" mostlyclean ;\
120 # Deleting everything that can reconstructed by this Makefile. It deletes
121 # everything deleted by distclean plus files created by bison, stc.
122 # -----------------------------------------------------------------------
124 $(MAKE) -f clean.mk realclean
125 for pkg in $(PKGS); do\
126 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" realclean ;\
130 # Creating distribution
131 # ---------------------
133 @if [ -f devel ]; then\
134 rm -f devel; mkdist sdcc; touch devel;\
140 # Performing self-test
141 # --------------------
145 # Performing installation test
146 # ----------------------------
150 # Creating dependencies
151 # ---------------------
153 $(MAKE) -f main.mk dep
154 @for pkg in $(PKGS); do\
155 $(MAKE) -C $$pkg dep ;\
162 @if [ -f start ]; then \
164 `find . -newer start -type f -print` |\
165 gzip -9c >`date '+%m%d%H%M'`.tgz; \
167 echo "start file not found.\n"; \
172 'put(c)' -s $(STARTYEAR) *.cc *.h *.y *.l
175 # Remaking configuration
176 # ----------------------
177 configure: configure.in
180 main.mk: $(srcdir)/main_in.mk $(srcdir)/configure.in config.status
181 $(SHELL) ./config.status
185 makefiles: config.status
187 config.status: configure
188 $(SHELL) ./config.status --recheck
191 $(SHELL) ./config.status
196 @if [ -f devel ]; then\