bug 427642 fix: error with files like ./file.asm
[fw/sdcc] / as / z80 / Makefile
index 5d362a7fcef36131f14acc8c012cc3ec4b0c0052..98dace119bd22b4661b5a120b0d6cdda833a9c3e 100644 (file)
@@ -1,22 +1,53 @@
-TOPDIR         = ../..
+PRJDIR = ../..
 
-include $(TOPDIR)/Makefile.common
+include $(PRJDIR)/Makefile.common
 
-SRC    = .
-OBJS   = asdata.o asexpr.o aslex.o aslist.o asmain.o asout.o \
-         assubr.o assym.o z80adr.o z80ext.o z80mch.o z80pst.o
-BINS   = as$E
+OBJDIR = obj/$(EXT)
 
+SDC    = .
+
+SLIBSRC        = NewAlloc.c
+
+SRC    = asdata.c asexpr.c aslex.c aslist.c asmain.c asout.c \
+         assubr.c assym.c z80adr.c z80ext.c z80mch.c z80pst.c
+
+OBJS   = $(SRC:%.c=$(OBJDIR)/%.o)
+SLIBOBJS       = $(SLIBSRC:%.c=$(OBJDIR)/%.o) 
+
+BINS   = $(BUILDDIR)as$(EXT)
+
+CFLAGS += $(OPTS) -I. -DINDEXLIB -DMLH_MAP -DUNIX -DSDK
 CFLAGS += -funsigned-char
+CFLAGS += -I$(SLIB) 
+
 LDFLAGS += -lm
 
-all:   $(BINS)
+all:   $(OBJDIR) dep $(BINS)
+
+dep: Makefile.dep
+
+Makefile.dep: $(SRC) *.h
+       $(CPP) $(CPPFLAGS) $(M_OR_MM) $(SRC) > Makefile.dep
+
+include Makefile.dep
+
+$(OBJDIR):
+       mkdir -p $(OBJDIR)
+
+$(BINS): $(OBJS) $(SLIBOBJS)
+       $(CC) $(LDFLAGS) -o $(BINS) $(OBJS) $(SLIBOBJS)
+
+
+$(OBJDIR)/%.o: %.c
+       $(CC) -c $(CFLAGS) -o $@ $<
+
+$(OBJDIR)/%.o: $(SLIB)/%.c
+       $(CC) -c $(CFLAGS) -o $@ $<
 
-$(BINS):       $(OBJS)
-       $(CC) $(LDFLAGS) -o $@ $(OBJS)
+_as-z80:
+       $(MAKE) EXT=-z80$(E)
 
-%.o:   $(SRC)/%.c
-       $(CC) -c $(CFLAGS) -I$(SRC) -o $@ $<
+_as-gbz80:
+       $(MAKE) EXT=-gbz80$(E) OPTS=-DGAMEBOY
 
-clean:
-       rm -f $(OBJS) $(BINS)
+include clean.mk