-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMakefile
68 lines (53 loc) · 1.84 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
# Copyright 2014 Check Point Software Technologies LTD
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Variable definition
BIN_NAME = cpmonitor
COREDIR = core
DUMPDIR = dump
PRINTERDIR = printer
KNOWNDIR = known
SRCS_MAIN = main.c
OBJS_MAIN = main.o
GLIB_FLAG = `pkg-config --cflags glib-2.0`
INCLUDES += -I/usr/lib/glib-2.0/include -I/usr/include/glib-2.0 -I$(COREDIR) -I$(DUMPDIR) -I$(PRINTERDIR) -I$(KNOWNDIR) $(GLIB_FLAG)
STDLIBS += -lglib-2.0 -lpcap
SUBDIRS = $(COREDIR) $(PRINTERDIR) $(DUMPDIR)
ALLOBJS = $(OBJS_MAIN) $(COREDIR)/core.o $(DUMPDIR)/dump.o $(PRINTERDIR)/printer.o $(PRINTERDIR)/known.o $(PRINTERDIR)/tprint.o
CC = gcc
CFLAGS += -g -Werror -Wall
# supporting dump files larger than 4GB
CFLAGS += -D_FILE_OFFSET_BITS=64 -D__USE_LARGEFILE
RM = rm -f
# Default Target
all: makefolder $(BIN_NAME)
makefolder:
@echo
@echo "#######################################"
@echo "### BUILDING ALL TARGETS ###"
@echo "#######################################"
@echo
for i in $(SUBDIRS) ; do \
( cd $$i ; make ) ; \
done
$(BIN_NAME): $(OBJS_MAIN)
$(CC) $(CFLAGS) $(INCLUDES) $(ALLOBJS) $(STDLIBS) -o $(BIN_NAME)
$(OBJS_MAIN): $(SRCS_MAIN)
$(CC) $(CFLAGS) -c $(INCLUDES) $(SRCS_MAIN)
clean:
for i in $(SUBDIRS) ; do \
( cd $$i ; make clean) ; \
done
@echo "* Cleaning main folder..."
$(RM) *.o
$(RM) $(BIN_NAME)