]> git.sur5r.net Git - cc65/commitdiff
Makefile patch contributed by Greg King:
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 2 Dec 2009 15:21:22 +0000 (15:21 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 2 Dec 2009 15:21:22 +0000 (15:21 +0000)
I added the "MAKEOPTS=" to the top-level "gcc.mak" that he wants, and I
changed the tool source tree's top-level make-file so that it supports
parallel building.  (I added a rule that builds the common library before
building anything else.)

git-svn-id: svn://svn.cc65.org/cc65/trunk@4497 b7a2c559-68d2-44c3-8de9-860c34a00d81

make/gcc.mak
src/make/gcc.mak

index 5ae2eb85400d0a3fd771b5dedc35718e7cfa9bd5..6b858e219e3b5d16f5a0c01701719b384ce0d920 100644 (file)
 #MAKEOVERRIDES=
 # (That trick has been disabled.)
 
+# To compile with custom make-options, set them here; for example:
+#MAKEOPTS = -j 2 CFLAGS=-O4 CC=clang
+MAKEOPTS =
+
 # The install prefix and directories
 prefix         = /usr/local
 exec_prefix    = $(prefix)
@@ -58,9 +62,10 @@ endif
 all:   bins libs docs $(SYS:%=samples tests)
 
 bins:
-       @$(MAKE) -C src -f make/gcc.mak CA65_INC=\\\"${CA65_INC}/\\\" \
-         CC65_INC=\\\"${CC65_INC}/\\\" LD65_CFG=\\\"${LD65_CFG}/\\\" \
-         LD65_LIB=\\\"${LD65_LIB}/\\\" LD65_OBJ=\\\"${LD65_OBJ}/\\\"
+       @$(MAKE) -C src -f make/gcc.mak $(MAKEOPTS) \
+         CA65_INC=\\\"${CA65_INC}/\\\" CC65_INC=\\\"${CC65_INC}/\\\" \
+         LD65_CFG=\\\"${LD65_CFG}/\\\" LD65_LIB=\\\"${LD65_LIB}/\\\" \
+         LD65_OBJ=\\\"${LD65_OBJ}/\\\"
 
 libs:
        @$(MAKE) -C libsrc
@@ -69,7 +74,7 @@ libs:
 # if a host system doesn't have LinuxDoc Tools.
 docs:
        @if linuxdoc -B check doc/index >/dev/null 2>&1; \
-         then $(MAKE) -C doc html; \
+         then $(MAKE) -C doc $(MAKEOPTS) html; \
          else echo '"LinuxDoc Tools" is not installed; skipping HTML documentation.'; \
          fi
 
index f36162f2ae5697ee041950cc9f1dcdf355ba0b51..ccd1f3fa74fbf1ceccdd93723291816063f3d81c 100644 (file)
@@ -1,21 +1,26 @@
 #
 # gcc Makefile for the program sources
 #
-
-SUBDIRS        =               \
-       common          \
-       ar65            \
-       ca65            \
-       cc65            \
-        chrcvt          \
-       cl65            \
-       co65            \
-       da65            \
-       grc             \
-       ld65            \
+PROGS =                \
+       ar65    \
+       ca65    \
+       cc65    \
+       chrcvt  \
+       cl65    \
+       co65    \
+       da65    \
+       grc     \
+       ld65    \
        od65
 
-.PHONY: all dist clean zap
-all dist clean zap:
-       for i in $(SUBDIRS); do $(MAKE) -C $$i -f make/gcc.mak $@ || exit $$?; done
+SUBDIRS        = common $(PROGS)
+
+.PHONY: all dist clean zap $(SUBDIRS)
+all dist clean zap:    $(SUBDIRS)
+
+# Finish building the common library before allowing parallel makes.
+$(PROGS):      common
+
+$(SUBDIRS):
+       $(MAKE) -C $@ -f make/gcc.mak $(MAKECMDGOALS)