]> git.sur5r.net Git - cc65/blobdiff - libsrc/Makefile
Working
[cc65] / libsrc / Makefile
index 068bbb4f5935435642cdc5a7503bf78750103a67..4cf826026b4102dfb82028189f4ec776f5ad97c5 100644 (file)
@@ -4,23 +4,41 @@
 
 .SUFFIXES: .o .obj .s .c
 
-# Defines used by the submakes:
-export CC = ../../src/cc65/cc65
-export AS = ../../src/ca65/ca65
-
-# Define used within this makefile
+# Defines for executables. The first two are passed to the submakes and are
+# relative to the subdirectories, the last one is used directly.
+CC = ../../src/cc65/cc65
+AS = ../../src/ca65/ca65
 AR = ../src/ar65/ar65
 
+# List of all targets
+ALLTARGETS =   apple2lib       \
+               atarilib        \
+               c64lib          \
+               c128lib         \
+               cbm510lib       \
+               cbm610lib       \
+               geoslib         \
+               petlib          \
+               plus4lib
+
 #-----------------------------------------------------------------------------
 
-all :          apple2lib c64lib c128lib cbm610lib geoslib petlib plus4lib
+all:
+       for tgt in $(ALLTARGETS); do            \
+           $(MAKE) clean $$tgt || exit 1;      \
+       done
 
 #-----------------------------------------------------------------------------
 # Apple ][
 
 apple2lib:
-       export CFLAGS="-Osir -g -t apple2 -I../../include";\
-       for i in apple2 common runtime conio dbg; do $(MAKE) -C $$i; done
+       for i in apple2 common runtime conio dbg; do \
+           CC=$(CC) \
+           AS=$(AS) \
+           CFLAGS="-Osir -g -T -t apple2 -I../../include" \
+           AFLAGS="-t apple2" \
+           $(MAKE) -C $$i || exit 1; \
+       done
        mv apple2/crt0.o apple2.o
        for i in apple2 common runtime conio dbg; do \
            $(AR) a apple2.lib $$i/*.o;\
@@ -30,8 +48,13 @@ apple2lib:
 # Atari
 
 atarilib:
-       export CFLAGS="-Osir -g -t atari -I../../include";\
-       for i in atari common runtime conio dbg; do $(MAKE) -C $$i; done
+       for i in atari common runtime conio dbg; do \
+           CC=$(CC) \
+           AS=$(AS) \
+           CFLAGS="-Osir -g -T -t atari -I../../include" \
+           AFLAGS="-t atari" \
+           $(MAKE) -C $$i || exit 1; \
+       done
        mv atari/crt0.o atari.o
        for i in atari common runtime conio dbg; do \
            $(AR) a atari.lib $$i/*.o;\
@@ -41,8 +64,13 @@ atarilib:
 # C64
 
 c64lib:
-       export CFLAGS="-Osir -g -t c64 -I../../include";\
-       for i in c64 cbm common runtime conio dbg; do $(MAKE) -C $$i; done
+       for i in c64 cbm common runtime conio dbg; do \
+           CC=$(CC) \
+           AS=$(AS) \
+           CFLAGS="-Osir -g -T -t c64 -I../../include" \
+           AFLAGS="-t c64" \
+           $(MAKE) -C $$i || exit 1; \
+       done
        mv c64/crt0.o c64.o
        for i in c64 cbm common runtime conio dbg; do \
            $(AR) a c64.lib $$i/*.o;\
@@ -52,19 +80,45 @@ c64lib:
 # C128
 
 c128lib:
-       export CFLAGS="-Osir -g -t c128 -I../../include";\
-       for i in c128 cbm common runtime conio dbg; do $(MAKE) -C $$i; done
+       for i in c128 cbm common runtime conio dbg; do \
+           CC=$(CC) \
+           AS=$(AS) \
+           CFLAGS="-Osir -g -T -t c128 -I../../include" \
+           AFLAGS="-t c128" \
+           $(MAKE) -C $$i || exit 1; \
+       done
        mv c128/crt0.o c128.o
        for i in c128 cbm common runtime conio dbg; do \
            $(AR) a c128.lib $$i/*.o;\
        done
 
+#-----------------------------------------------------------------------------
+# Commdore P500 / CBM 5x0
+
+cbm510lib:
+       for i in cbm510 cbm common runtime conio dbg; do \
+           CC=$(CC) \
+           AS=$(AS) \
+           CFLAGS="-Osir -g -T -t cbm510 -I../../include" \
+           AFLAGS="-t cbm510" \
+           $(MAKE) -C $$i || exit 1; \
+       done
+       mv cbm510/crt0.o cbm510.o
+       for i in cbm510 cbm common runtime conio dbg; do \
+           $(AR) a cbm510.lib $$i/*.o;\
+       done
+
 #-----------------------------------------------------------------------------
 # PET-II series
 
 cbm610lib:
-       export CFLAGS="-Osir -g -t cbm610 -I../../include";\
-       for i in cbm610 cbm common runtime conio dbg; do $(MAKE) -C $$i; done
+       for i in cbm610 cbm common runtime conio dbg; do \
+           CC=$(CC) \
+           AS=$(AS) \
+           CFLAGS="-Osir -g -T -t cbm610 -I../../include" \
+           AFLAGS="-t cbm610" \
+           $(MAKE) -C $$i || exit 1; \
+       done
        mv cbm610/crt0.o cbm610.o
        for i in cbm610 cbm common runtime conio dbg; do \
            $(AR) a cbm610.lib $$i/*.o;\
@@ -74,18 +128,41 @@ cbm610lib:
 # GEOS on the C64/128
 
 geoslib:
-       export CFLAGS="-Osir -g -t geos -I../../include";\
-               for i in geos common runtime; do $(MAKE) -C $$i; done
+       CC=../$(CC) \
+       AS=../$(AS) \
+       AR=../$(AR) \
+       CFLAGS="-Osir -g -T -t geos -I../../../include" \
+       AFLAGS="-t geos" \
+       $(MAKE) -C geos || exit 1
+       for i in common runtime; do \
+           CC=$(CC) \
+           AS=$(AS) \
+           AR=$(AR) \
+           CFLAGS="-Osir -g -T -t geos -I../../include" \
+           AFLAGS="-t geos" \
+           $(MAKE) -C $$i || exit 1; \
+       done
        for i in common runtime; do \
-           $(AR) a geos.lib $$i/*.o;\
+           for objfile in $$i/*.o; do \
+               if [ -f geos/$$objfile ]; then \
+                   $(AR) a geos.lib geos/$$objfile; \
+               else \
+                   $(AR) a geos.lib $$objfile; \
+               fi; \
+           done \
        done
 
 #-----------------------------------------------------------------------------
 # CBM PET machines
 
 petlib:
-       export CFLAGS="-Osir -g -t pet -I../../include";\
-       for i in pet cbm common runtime conio dbg; do $(MAKE) -C $$i; done
+       for i in pet cbm common runtime conio dbg; do \
+           CC=$(CC) \
+           AS=$(AS) \
+           CFLAGS="-Osir -g -T -t pet -I../../include" \
+           AFLAGS="-t pet" \
+           $(MAKE) -C $$i || exit 1; \
+       done
        mv pet/crt0.o pet.o
        for i in pet cbm common runtime conio dbg; do \
            $(AR) a pet.lib $$i/*.o;\
@@ -95,8 +172,13 @@ petlib:
 # Commodore C116, C16 and Plus/4
 
 plus4lib:
-       export CFLAGS="-Osir -g -t plus4 -I../../include";\
-       for i in plus4 cbm common runtime conio dbg; do $(MAKE) -C $$i; done
+       for i in plus4 cbm common runtime conio dbg; do \
+           CC=$(CC) \
+           AS=$(AS) \
+           CFLAGS="-Osir -g -T -t plus4 -I../../include" \
+           AFLAGS="-t plus4" \
+           $(MAKE) -C $$i || exit 1; \
+       done
        mv plus4/crt0.o plus4.o
        for i in plus4 cbm common runtime conio dbg; do \
            $(AR) a plus4.lib $$i/*.o;\
@@ -107,13 +189,14 @@ plus4lib:
 
 .PHONY: clean
 clean:
-       @for i in apple2 atari c128 c64 cbm cbm610 common conio dbg geos pet plus4 runtime; do  \
-                  $(MAKE) -C $$i clean;                                                                        \
+       @for i in apple2 atari c128 c64 cbm cbm510 cbm610 common conio dbg geos pet plus4 runtime; do   \
+          $(MAKE) -C $$i clean;                                                                        \
        done
 
 .PHONY: zap
 zap:   clean
-       @rm -f *.lib
+       @rm -f *.o *.lib
+