9a914813ac4dfd35b4933c00700fde834cb0bedd
[fw/sdcc] / as / z80 / Makefile
1 PRJDIR = ../..
2
3 include $(PRJDIR)/Makefile.common
4
5 OBJDIR  = obj/$(EXT)
6
7 SDC     = .
8
9 SLIBSRC = NewAlloc.c
10
11 SRC     = asdata.c asexpr.c aslex.c aslist.c asmain.c asout.c \
12           assubr.c assym.c z80adr.c z80ext.c z80mch.c z80pst.c
13
14 OBJS    = $(SRC:%.c=$(OBJDIR)/%.o)
15 SLIBOBJS        = $(SLIBSRC:%.c=$(OBJDIR)/%.o) 
16
17 BINS    = $(BUILDDIR)as$(EXT)
18
19 CFLAGS  += $(CPPFLAGS) $(OPTS) -I. -DINDEXLIB -DMLH_MAP -DUNIX -DSDK
20 CFLAGS  += -funsigned-char
21 CFLAGS  += -I$(SLIB) 
22
23 LDFLAGS += -lm $(EXTRALIBS)
24
25 all:    dep $(BINS)
26
27 dep: Makefile.dep
28
29 Makefile.dep: $(SRC) *.h
30         $(CPP) $(CPPFLAGS) $(M_OR_MM) $(SRC) > Makefile.dep
31
32 include Makefile.dep
33
34 # We need a '.stamp'-file in $(OBJDIR), because the time stamp
35 # of $(OBJDIR) itself is always updated, when a file in $(OBJDIR)
36 # is updated. A rule like
37 #       $(OBJDIR)/anyfile: $(OBJDIR)
38 # will always force a remake (at least on Linux ext2).
39
40 $(OBJDIR)/.stamp:
41         mkdir -p $(OBJDIR)
42         touch $(OBJDIR)/.stamp
43
44 $(BINS): $(OBJS) $(SLIBOBJS)
45         $(CC) -o $(BINS) $(OBJS) $(SLIBOBJS) $(LDFLAGS)
46
47
48 $(OBJDIR)/%.o:  %.c $(OBJDIR)/.stamp
49         $(CC) -c $(CFLAGS) -o $@ $<
50
51 $(OBJDIR)/%.o:  $(SLIB)/%.c $(OBJDIR)/.stamp
52         $(CC) -c $(CFLAGS) -o $@ $<
53
54 _as-z80:
55         $(MAKE) EXT=-z80$(E)
56
57 _as-gbz80:
58         $(MAKE) EXT=-gbz80$(E) OPTS=-DGAMEBOY
59
60 include clean.mk