AcesNative+Usermode - libacessnative "works" (for some definitions)
[tpg/acess2.git] / Usermode / Applications / Makefile.tpl
1 #
2 # Acess2
3 # - Application Template Makefile
4 #
5
6 CFLAGS  += -g
7 LDFLAGS += -g
8
9 LDFLAGS += -Map $(_OBJPREFIX)Map.txt
10
11 ifneq ($(lastword $(subst -, ,$(basename $(LD)))),ld)
12   LDFLAGS := $(subst -rpath-link ,-Wl$(comma)-rpath-link$(comma),$(LDFLAGS))
13   LDFLAGS := $(subst -Map ,-Wl$(comma)-Map$(comma),$(LDFLAGS))
14 endif
15
16 _BIN := $(OUTPUTDIR)$(DIR)/$(BIN)
17 _OBJPREFIX := obj-$(ARCH)/
18
19 _LIBS := $(filter -l%,$(LDFLAGS))
20 _LIBS := $(patsubst -l%,$(OUTPUTDIR)Libs/lib%.so,$(_LIBS))
21
22 ifeq ($(VERBOSE),)
23 V := @
24 else
25 V :=
26 endif
27
28 OBJ := $(addprefix $(_OBJPREFIX),$(OBJ))
29
30 DEPFILES := $(OBJ:%.o=%.dep)
31
32 .PHONY : all clean install
33
34 all: $(_BIN)
35
36 clean:
37         @$(RM) $(OBJ) $(DEPFILES) $(_BIN) $(BIN).dsm
38         @$(RM) -r $(_OBJPREFIX)
39
40 install: $(_BIN)
41         @echo [xCP] $(DISTROOT)/$(DIR)/$(BIN)
42         @$(xMKDIR) $(DISTROOT)/$(DIR); true
43         @$(STRIP) $(_BIN) -o $(_BIN)_
44         @$(xCP) $(_BIN)_ $(DISTROOT)/$(DIR)/$(BIN)
45         @$(RM) $(_BIN)_
46
47 $(_BIN): $(OUTPUTDIR)Libs/acess.ld $(OUTPUTDIR)Libs/crt0.o $(_LIBS) $(OBJ)
48         @mkdir -p $(dir $(_BIN))
49         @echo [LD] -o $@
50         $V$(LD) -g $(LDFLAGS) -o $@ $(OBJ) $(LIBGCC_PATH)
51         $V$(DISASM) $(_BIN) > $(_OBJPREFIX)$(BIN).dsm
52
53 $(OBJ): $(_OBJPREFIX)%.o: %.c
54         @echo [CC] -o $@
55 ifneq ($(_OBJPREFIX),)
56         @mkdir -p $(dir $@)
57 endif
58         $V$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
59         $V$(CC) -M -MP -MT $@ $(CPPFLAGS) $< -o $(_OBJPREFIX)$*.dep
60
61 $(OUTPUTDIR)Libs/libld-acess.so:
62         @make -C $(ACESSDIR)/Usermode/Libraries/ld-acess.so_src/
63 $(OUTPUTDIR)Libs/%:
64         @make -C $(ACESSDIR)/Usermode/Libraries/$*_src/
65
66 -include $(DEPFILES)
67
68 # vim: ft=make

UCC git Repository :: git.ucc.asn.au