Project

General

Profile

Download (1.94 KB) Statistics
| Branch: | Tag: | Revision:
1
# binary file name
2
TARGET=osdr-sweep
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/main.c \
14
	src/serial.c \
15
	src/utils.c
16

    
17
# general compiler flags
18
CFLAGS=-Wall
19
LDFLAGS=-Wl,-Map=$(FULLTARGET).map
20
LIBS=-lrt libportaudio.a -lasound -lm -lpthread
21

    
22
##############################################################################
23

    
24
SUBDIRS=$(sort $(dir $(C_SOURCES)))
25

    
26
DEPDIR=deps
27
OBJDIR=objs
28
BINDIR=bin
29
DEPDIRS=$(addprefix $(DEPDIR)/,$(SUBDIRS))
30
OBJDIRS=$(addprefix $(OBJDIR)/,$(SUBDIRS))
31

    
32
CC=$(CROSS_COMPILE)gcc
33
LD=$(CROSS_COMPILE)gcc
34

    
35
COBJS=$(C_SOURCES:%.c=%.o)
36
DEPS=$(C_SOURCES:%.c=%.dep)
37
FULLDEPS=$(addprefix $(DEPDIR)/,$(DEPS))
38
FULLCOBJS=$(addprefix $(OBJDIR)/,$(COBJS))
39
FULLTARGET=$(addprefix $(BINDIR)/,$(TARGET))
40

    
41
ifeq ($(DEBUG),Y)
42
	# debug version
43
	CFLAGS+=-O0 -g3
44
	LDFLAGS+=-g3
45
else ifeq ($(DEBUG),y)
46
	# optimized version with debugger info
47
	CFLAGS+=-O2 -g3 -Werror -ffunction-sections -fdata-sections
48
	LDFLAGS+=-g3 -Wl,--gc-sections
49
else
50
	# release version
51
	CFLAGS+=-O2 -s -Werror -ffunction-sections -fdata-sections
52
	LDFLAGS+=-s -Wl,--gc-sections
53
endif
54

    
55
.PHONY: all build clean distclean
56

    
57
all: build
58

    
59
build: $(FULLTARGET)
60

    
61
-include $(FULLDEPS)
62

    
63
$(FULLTARGET): $(DEPDIRS) $(OBJDIRS) $(BINDIR) $(FULLCOBJS)
64
	@echo LD \ $(TARGET)
65
	$(QUIET)$(LD) $(LDFLAGS) -o $(FULLTARGET) -Wl,--start-group $(FULLCOBJS) $(LIBS) -Wl,--end-group
66
	$(QUIET)ln -sf $(FULLTARGET) $(TARGET)
67

    
68
$(FULLCOBJS):
69
	@echo C\ \ \ $(patsubst $(OBJDIR)/%,%,$(patsubst %.o,%.c, $@))
70
	$(QUIET)$(CC) $(CFLAGS) $(CFLAGS_$(subst /,_,$(patsubst %.o,%,$@))) -MD -MP -MF $(patsubst %.o,$(DEPDIR)/%.dep,$(patsubst $(OBJDIR)/%,%,$@)) -c $(patsubst $(OBJDIR)/%,%,$(patsubst %.o,%.c, $@)) -o $@
71

    
72
$(DEPDIRS):
73
	$(QUIET)mkdir -p $@
74
	
75
$(OBJDIRS):
76
	$(QUIET)mkdir -p $@
77
	
78
$(BINDIR):
79
	$(QUIET)mkdir -p $@
80

    
81
clean:
82
	$(QUIET)echo CLEAN
83
	$(QUIET)rm -Rf $(DEPDIR) $(OBJDIR) $(BINDIR) $(TARGET) $(TARGET).map *~ *.s *.ss
84

    
85
distclean: clean
(1-1/3)
Add picture from clipboard (Maximum size: 48.8 MB)