#
#
-# Version
-VERSION = @VERSION@
-VERSIONHI = @VERSIONHI@
-VERSIONLO = @VERSIONLO@
-VERSIONP = @VERSIONP@
-
-# Programs
-SHELL = /bin/sh
-CC = @CC@
-CPP = @CPP@
-RANLIB = @RANLIB@
-INSTALL = @INSTALL@
-YACC = @YACC@
-LEX = @LEX@
-AWK = @AWK@
-# Directories
PRJDIR = ..
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-datadir = @datadir@
-includedir = @includedir@
-mandir = @mandir@
-man1dir = $(mandir)/man1
-man2dir = $(mandir)/man2
-infodir = @infodir@
-srcdir = @srcdir@
-
-# Flags
-DEFS = $(subs -DHAVE_CONFIG_H,,@DEFS@)
-CPPFLAGS = @CPPFLAGS@ -I$(PRJDIR) -I$(PRJDIR)/support
-CFLAGS = @CFLAGS@ -Wall
-M_OR_MM = @M_OR_MM@
+include $(PRJDIR)/Makefile.common
+
+PORTS = mcs51
+PORT_LIBS = $(PORTS:%=%/port.a)
+
LIBS = -lgc @LIBS@
LIBDIRS = -L$(PRJDIR)/support/gc
OBJECTS = SDCCy.o SDCClex.o SDCCerr.o SDCChasht.o SDCCmain.o \
SDCCsymt.o SDCCopt.o SDCCast.o SDCCmem.o SDCCval.o \
- SDCCralloc.o SDCCicode.o SDCCbitv.o SDCCset.o SDCClabel.o \
+ SDCCicode.o SDCCbitv.o SDCCset.o SDCClabel.o \
SDCCBBlock.o SDCCloop.o SDCCcse.o SDCCcflow.o SDCCdflow.o \
- SDCClrange.o SDCCptropt.o SDCCgen51.o SDCCpeeph.o SDCCglue.o spawn.o
+ SDCClrange.o SDCCptropt.o SDCCpeeph.o SDCCglue.o spawn.o
SOURCES = $(patsubst %.o,%.c,$(OBJECTS))
TARGET = $(PRJDIR)/bin/sdcc
-
# Compiling entire program or any subproject
# ------------------------------------------
-all: checkconf $(PRJDIR)/support/gc/libgc.a $(TARGET)
+all: ports checkconf $(PRJDIR)/support/gc/libgc.a $(TARGET)
+
+ports:
+ for i in $(PORTS); do $(MAKE) -C $$i; done
$(PRJDIR)/support/gc/libgc.a:
cd $(PRJDIR)/support/gc && $(MAKE)
# My rules
# --------
-$(TARGET): $(OBJECTS)
- $(CC) -o $@ $(OBJECTS) $(LIBDIRS) $(LIBS)
+$(TARGET): $(OBJECTS) $(PORT_LIBS)
+ $(CC) -o $@ $(OBJECTS) $(PORT_LIBS) $(LIBDIRS) $(LIBS)
.c.o:
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+SDCCy.h: SDCCy.c
+
SDCCy.c: SDCC.y
$(YACC) -d -v -o $@ $<