9 PKGS = debugger/mcs51 sim/ucsim
10 SDCC_LIBS = support/cpp
11 SDCC_ASLINK = as/mcs51 as link
18 # Compiling entire program or any subproject
19 # ------------------------------------------
23 ifeq ($(CROSS_LIBGC),1)
24 $(MAKE) -C support/gc -f Makefile.cross
28 for lib in $(SDCC_LIBS); do $(MAKE) -C $$lib; done
34 for as in $(SDCC_ASLINK); do $(MAKE) -C $$as; done
37 for pkg in $(PKGS); do $(MAKE) -C $$pkg; done
41 $(MAKE) -C device/include
44 sdcc: sdcc-cc sdcc-aslink sdcc-misc sdcc
45 $(MAKE) -f main.mk all
47 # Some interesting sub rules
48 sdcc-bin: sdcc-cc sdcc-aslink sdcc-misc
50 # Compiling and installing everything and runing test
51 # ---------------------------------------------------
53 $(MAKE) -f main.mk install
54 @for pkg in $(PKGS); do\
55 $(MAKE) -C $$pkg install ;\
59 # Deleting all the installed files
60 # --------------------------------
62 $(MAKE) -f main.mk uninstall
63 @for pkg in $(PKGS); do\
64 $(MAKE) -C $$pkg uninstall ;\
68 # Deleting all files created by building the program
69 # --------------------------------------------------
71 @echo "+ Cleaning root of the project..."
72 $(MAKE) -f clean.mk clean
73 @echo "+ Cleaning packages in their directories..."
74 for pkg in $(PKGS); do\
75 $(MAKE) PORTS="$(PORTS)" -C $$pkg clean ;\
77 @echo "+ Cleaning sub-projects using Makefile..."
78 for prj in $(PRJS); do\
79 $(MAKE) -C $$prj clean ;\
83 # Deleting all files created by configuring or building the program
84 # -----------------------------------------------------------------
86 @echo "+ DistCleaning root of the project..."
87 $(MAKE) -f clean.mk distclean
88 @echo "+ DistCleaning packages using clean.mk..."
89 for pkg in $(PKGS); do\
90 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" distclean ;\
92 @echo "+ DistCleaning sub-projects using Makefile..."
93 for prj in $(PRJS); do\
94 $(MAKE) -C $$prj distclean ;\
98 # Like clean but some files may still exist
99 # -----------------------------------------
101 $(MAKE) -f clean.mk mostlyclean
102 for pkg in $(PKGS); do\
103 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" mostlyclean ;\
105 for prj in $(PRJS); do\
106 $(MAKE) -C $$prj mostlyclean ;\
110 # Deleting everything that can reconstructed by this Makefile. It deletes
111 # everything deleted by distclean plus files created by bison, stc.
112 # -----------------------------------------------------------------------
114 $(MAKE) -f clean.mk realclean
115 for pkg in $(PKGS); do\
116 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" realclean ;\
118 for prj in $(PRJS); do\
119 $(MAKE) -C $$prj realclean ;\
123 # Creating distribution
124 # ---------------------
126 @if [ -f devel ]; then\
127 rm -f devel; mkdist sdcc; touch devel;\
133 # Performing self-test
134 # --------------------
138 # Performing installation test
139 # ----------------------------
143 # Creating dependencies
144 # ---------------------
146 $(MAKE) -f main.mk dep
147 @for pkg in $(PKGS); do\
148 $(MAKE) -C $$pkg dep ;\
155 @if [ -f start ]; then \
157 `find . -newer start -type f -print` |\
158 gzip -9c >`date '+%m%d%H%M'`.tgz; \
160 echo "start file not found.\n"; \
165 'put(c)' -s $(STARTYEAR) *.cc *.h *.y *.l
168 # Remaking configuration
169 # ----------------------
170 configure: configure.in
173 main.mk: $(srcdir)/main_in.mk $(srcdir)/configure.in config.status
174 $(SHELL) ./config.status
178 makefiles: config.status
180 config.status: configure
181 $(SHELL) ./config.status --recheck
184 $(SHELL) ./config.status
189 @if [ -f devel ]; then\