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