-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
Makefile
149 lines (117 loc) · 3.67 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# Hey Emacs, this is a -*- makefile -*-
#
# Copyright (C) 2003-2012 The Paparazzi Team
#
# This file is part of paparazzi.
#
# paparazzi is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# paparazzi is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with paparazzi; see the file COPYING. If not, write to
# the Free Software Foundation, 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
# Quiet compilation
# Launch with "make Q=''" to get full command display
Q=@
DEBUG =n
MACHINE := $(shell uname -m)
AS86 =as86 -0 -a
LD86 =ld86 -0
AS =as
LD =ld
LDFLAGS =-lm
HOSTCC =gcc
CC =gcc
MAKE =make
CPP =$(CC) -E
AR =ar
STRIP =strip
MKDIR =mkdir
OCAMLC =ocamlc
CFLAGS =-Wall -Wstrict-prototypes -I/usr/X11R6/include -I`$(OCAMLC) -where`
ifeq ($(DEBUG),y)
CFLAGS +=-g -O
else
CFLAGS +=-O3
endif
LBITS := $(shell getconf LONG_BIT)
ifeq ($(LBITS),64)
CFLAGS += -fPIC
else ifeq ($(MACHINE),'i686')
CFLAGS += -march=i486 -falign-loops=2 -falign-jumps=2 -falign-functions=2 -DARCH_I386
endif
LDFLAGSX =-lX11 -L/usr/X11R6/lib
#BINDIR =bin-$(shell uname -m)
BINDIR =.
UNAME = $(shell uname -s)
ifeq ("$(UNAME)","Linux")
OBJFILES=pprzlib.o hdlc.o demod_afsk12.o demodml.o costabi.o gen_hdlc.o ml_hdlc.o demod.cmo hdlc.cmo
ALLTARGETS=$(BINDIR)/multimon multimon.cma
endif
ifeq ("$(UNAME)","linux")
OBJFILES=pprzlib.o hdlc.o demod_afsk12.o demodml.o costabi.o gen_hdlc.o ml_hdlc.o demod.cmo hdlc.cmo
ALLTARGETS=$(BINDIR)/multimon multimon.cma
endif
ifeq ("$(UNAME)","Darwin")
OBJFILES=demodml.o ml_hdlc.o demod.cmo hdlc.cmo
ALLTARGETS=multimon.cma
endif
all: $(ALLTARGETS)
multimon.cma: $(OBJFILES)
@echo OLD $@
$(Q)ocamlmklib -o multimon $^
$(BINDIR)/%.s: %.c
$(CC) $(CFLAGS) -S -o $@ $<
$(BINDIR)/%.o: $(BINDIR)/%.s
$(AS) -c -o $@ $<
$(BINDIR)/%.o: %.c
@echo CC $<
$(Q)$(CC) $(CFLAGS) -c -o $@ $<
SRC_L2 = hdlc.c pprz.c
SRC_L1 = demod_afsk48p.c demod_display.c
SRC_MISC = unixinput.c xdisplay.c
SRC_GEN =gen.c gen_dtmf.c gen_sin.c gen_zvei.c gen_hdlc.c costabi.c
OBJ_L2 =$(SRC_L2:%.c=$(BINDIR)/%.o)
OBJ_L1 =$(SRC_L1:%.c=$(BINDIR)/%.o)
OBJ_MISC =$(SRC_MISC:%.c=$(BINDIR)/%.o)
OBJ_GEN =$(SRC_GEN:%.c=$(BINDIR)/%.o)
$(BINDIR):
$(MKDIR) $(BINDIR)
$(BINDIR)/multimon: $(OBJ_L2) $(OBJ_L1) $(OBJ_MISC)
@echo LD $@
$(Q)$(CC) $^ $(LDFLAGS) $(LDFLAGSX) -o $@
$(BINDIR)/gen: $(OBJ_GEN)
$(CC) $^ $(LDFLAGS) -o $@
$(BINDIR)/mkcostab: $(BINDIR)/mkcostab.o
$(CC) $^ $(LDFLAGS) -o $@
costabi.c costabf.c: $(BINDIR)/mkcostab
$(BINDIR)/mkcostab
libtest: pprzlib.o demodml.c demod.ml test.ml
$(OCAMLC) -custom -o $@ pprzlib.o demodml.c -I +lablgtk2 unix.cma lablgtk.cma demod.ml test.ml
hdlc_test : multimon.cma test_gen_hdlc.ml
$(OCAMLC) -o $@ -custom -I +lablgtk2 -thread unix.cma threads.cma lablgtk.cma gtkThread.cmo -I . $^ -cclib -ljack
hdlc.cmo : hdlc.cmi
%.cmo : %.ml
$(OCAMLC) -c $<
%.cmi : %.mli
$(OCAMLC) $<
clean:
rm -fr *.cm* mkcostab .depend
$(RM) -f core `find . -name '*.[oas]' -print`
$(RM) -f core `find . -name 'core' -print`
$(RM) -f core costabi.c costabf.c *~
$(RM) $(BINDIR)/multimon
.PHONY: all clean depend dep
depend dep:
$(CPP) -M $(CFLAGS) $(SRC_MISC) $(SRC_L1) $(SRC_L2) $(SRC_GEN) mkcostab.c > $(BINDIR)/.depend
ifeq ($(BINDIR)/.depend,$(wildcard $(BINDIR)/.depend))
include $(BINDIR)/.depend
endif