EXEEXT introduces to solve Cygwin problems
[fw/sdcc] / link / z80 / Makefile
index 23763ebc06e3462c5d0bd03a7e024d389f2784e9..33764018401b58a54a769feb20647d5dae43f62d 100644 (file)
@@ -2,21 +2,43 @@ PRJDIR = ../..
 
 include $(PRJDIR)/Makefile.common
 
-OBJS   = lkarea.o lkdata.o lkeval.o lkhead.o lkihx.o lklex.o \
-         lklibr.o lklist.o lkmain.o lkrloc.o lks19.o lksym.o \
-         lkgb.o lkgg.o
-BINS   = $(BUILDDIR)/link$(EXT)
+OBJDIR = obj/$(EXT)
 
-CFLAGS += $(OPTS) -DINDEXLIB -DMLH_MAP -DUNIX -DSDK -DSDK_VERSION_STRING="\"3.0.0\"" -DTARGET_STRING="\"gbz80\""
+SLIBSRC        = NewAlloc.c
+
+SRC    = lkarea.c lkdata.c lkeval.c lkhead.c lkihx.c lklex.c \
+         lklibr.c lklist.c lkmain.c lkrloc.c lks19.c lksym.c \
+         lkgb.c lkgg.c
+
+OBJS   = $(SRC:%.c=$(OBJDIR)/%.o) 
+SLIBOBJS       = $(SLIBSRC:%.c=$(OBJDIR)/%.o) 
+
+BINS   = $(BUILDDIR)link$(EXT)$(EXEEXT)
+
+CFLAGS += $(CPPFLAGS) $(OPTS) -DINDEXLIB -DMLH_MAP -DUNIX -DSDK
 CFLAGS += -funsigned-char -DUNIX
+CFLAGS += -I$(PRJDIR)/as/$(PORT) -I$(SLIB) 
+
+LDFLAGS += -lm $(EXTRALIBS)
 
 all:   $(BINS)
 
-$(BINS): $(OBJS)
-       $(CC) $(LDFLAGS) -o $(BINS) $(OBJS)
+$(BINS): $(OBJDIR) $(OBJS) $(SLIBOBJS)
+       $(CC) -g -o $(BINS) $(OBJS) $(SLIBOBJS) $(LDFLAGS)
+
+$(OBJDIR):
+       mkdir -p $(OBJDIR)
+
+$(OBJDIR)/%.o: %.c
+       $(CC) -c $(CFLAGS) -o $@ $<
+
+$(OBJDIR)/%.o: $(SLIB)/%.c
+       $(CC) -c $(CFLAGS) -o $@ $<
+
+_link-z80:
+       $(MAKE) EXT=-z80$(E) PORT=z80
 
-%.o:   %.c
-       $(CC) -c $(CFLAGS) -I$(PRJDIR)/as/$(PORT) -o $@ $<
+_link-gbz80:
+       $(MAKE) EXT=-gbz80$(E) OPTS=-DGAMEBOY PORT=z80
 
-clean:
-       rm -f $(OBJS) $(BINS)
+include clean.mk