Project

General

Profile

Download (1.93 KB) Statistics
| Branch: | Tag: | Revision:
1 c46bad77 Christian Daniel
# binary file name
2
TARGET=vmelin
3
4
# CROSS_COMPILE=
5
QUIET=@
6
7
# N = build release version
8
# y = optimize but include debugger info
9
# Y = build debug version
10
DEBUG=N
11
12
C_SOURCES=\
13
	src/hardware.c \
14
	src/main.c \
15
	src/slim_pro.c \
16
	src/slim_vme.c \
17
	src/utils.c
18
19
# general compiler flags
20
CFLAGS=-Wall
21
LDFLAGS=-Wl,-Map=$(FULLTARGET).map
22
LIBS=-lrt
23
24
##############################################################################
25
26
SUBDIRS=$(sort $(dir $(C_SOURCES)))
27
28
DEPDIR=deps
29
OBJDIR=objs
30
BINDIR=bin
31
DEPDIRS=$(addprefix $(DEPDIR)/,$(SUBDIRS))
32
OBJDIRS=$(addprefix $(OBJDIR)/,$(SUBDIRS))
33
34
CC=$(CROSS_COMPILE)gcc
35
LD=$(CROSS_COMPILE)gcc
36
37
COBJS=$(C_SOURCES:%.c=%.o)
38
DEPS=$(C_SOURCES:%.c=%.dep)
39
FULLDEPS=$(addprefix $(DEPDIR)/,$(DEPS))
40
FULLCOBJS=$(addprefix $(OBJDIR)/,$(COBJS))
41
FULLTARGET=$(addprefix $(BINDIR)/,$(TARGET))
42
43
ifeq ($(DEBUG),Y)
44
	# debug version
45
	CFLAGS+=-O0 -g3
46
	LDFLAGS+=-g3
47
else ifeq ($(DEBUG),y)
48
	# optimized version with debugger info
49
	CFLAGS+=-O2 -g3 -Werror -ffunction-sections -fdata-sections
50
	LDFLAGS+=-g3 -Wl,--gc-sections
51
else
52
	# release version
53
	CFLAGS+=-O2 -s -Werror -ffunction-sections -fdata-sections
54
	LDFLAGS+=-s -Wl,--gc-sections
55
endif
56
57
.PHONY: all build clean distclean
58
59
all: build
60
61
build: $(FULLTARGET)
62
63
-include $(FULLDEPS)
64
65
$(FULLTARGET): $(DEPDIRS) $(OBJDIRS) $(BINDIR) $(FULLCOBJS)
66
	@echo LD \ $(TARGET)
67
	$(QUIET)$(LD) $(LDFLAGS) -o $(FULLTARGET) -Wl,--start-group $(FULLCOBJS) $(LIBS) -Wl,--end-group
68
	$(QUIET)ln -sf $(FULLTARGET) $(TARGET)
69
70
$(FULLCOBJS):
71
	@echo C\ \ \ $(patsubst $(OBJDIR)/%,%,$(patsubst %.o,%.c, $@))
72
	$(QUIET)$(CC) $(CFLAGS) $(CFLAGS_$(subst /,_,$(patsubst %.o,%,$@))) -MD -MP -MF $(patsubst %.o,$(DEPDIR)/%.dep,$(patsubst $(OBJDIR)/%,%,$@)) -c $(patsubst $(OBJDIR)/%,%,$(patsubst %.o,%.c, $@)) -o $@
73
74
$(DEPDIRS):
75
	$(QUIET)mkdir -p $@
76
	
77
$(OBJDIRS):
78
	$(QUIET)mkdir -p $@
79
	
80
$(BINDIR):
81
	$(QUIET)mkdir -p $@
82
83
clean:
84
	$(QUIET)echo CLEAN
85
	$(QUIET)rm -Rf $(DEPDIR) $(OBJDIR) $(BINDIR) $(TARGET) $(TARGET).map *~ *.s *.ss
86
87
distclean: clean
Add picture from clipboard (Maximum size: 48.8 MB)