Introductory parseThat commit. - - - - - - - - - - - - - - - - - - - - -
[dyninst.git] / parseThat / Makefile
1 # ------------------------------------------------------------------------------
2 # User options
3 # ------------------------------------------------------------------------------
4
5 # Platform string, could be taken from environment.
6 PLATFORM ?=
7
8 # Location of compiler to use.
9 CXX = g++
10
11 # Build options.
12 DEFINES =
13 CXXFLAGS =
14 LDFLAGS =
15
16 # Location and version of DyninstAPI we are linking against.
17 DYNINST_VER = 5
18 DYNINST_DIR = $(DYNINST_ROOT)
19 DYNINST_INC = $(DYNINST_DIR)/core/dyninstAPI/h
20 DYNINST_LIB = $(DYNINST_DIR)/$(PLATFORM)/lib
21
22 # Location of OpenSSL package.  Used for calculating SHA1 sums.
23 OPENSSL_DIR = /usr
24 OPENSSL_INC = $(OPENSSL_DIR)/include
25 OPENSSL_LIB = $(OPENSSL_DIR)/lib
26
27 # End of user modifiable options.  Do not modify beyond this line.
28 # ==============================================================================
29
30 ifeq ($(PLATFORM),)
31 $(error PLATFORM environment variable must be defined)
32 endif
33
34 .PHONY: clean ready
35
36 SRCS = parseThat.C config.C ipc.C record.C strlist.C reglist.C log.C utils.C dyninstCore.C
37
38 ifeq ($(DYNINST_VER), 5)
39 SRCS += dyninstCompat.v5.C
40 endif
41
42 ifeq ($(DYNINST_VER), 4)
43 SRCS += dyninstCompat.v4.C
44 endif
45
46 OBJS=$(addprefix $(PLATFORM)/, $(SRCS:%.C=%.o))
47
48 DEFINES         += -DDYNINST_VER=$(DYNINST_VER)
49 CXXFLAGS        += -g -Wall -Isrc -I$(DYNINST_INC) -I$(DYNINST_DIR)/core -I$(OPENSSL_INC) $(DEFINES)
50 LDFLAGS         += -L$(DYNINST_LIB) -ldyninstAPI -liberty -L$(OPENSSL_LIB) -lcrypto
51
52 ifneq (, $(findstring sparc, $(PLATFORM)))
53 LDFLAGS         += -lelf -lstdc++ -lsocket -lrt
54 endif
55
56 ifneq (, $(findstring alpha, $(PLATFORM)))
57 CXXFLAGS        += -pthread
58 endif
59
60 ifneq (, $(findstring ia64, $(PLATFORM)))
61 LDFLAGS         += -ldl
62 endif
63
64 all: ready install
65
66 $(PLATFORM)/parseThat: $(OBJS)
67         $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)
68
69 install: $(PLATFORM)/parseThat
70         rm -f parseThat
71         ln -s $(PLATFORM)/parseThat parseThat
72
73 clean:
74         rm -rf $(PLATFORM)
75
76 ready:
77         if [ ! -d $(PLATFORM) ]; then mkdir $(PLATFORM); fi
78
79 $(OBJS): $(PLATFORM)/%.o: src/%.C
80         $(CXX) $(CXXFLAGS) $^ -c -o $@
81
82 alarm: alarm.c liblib.so
83         gcc -Wall -g -o alarm alarm.c liblib.so
84
85 liblib.so: lib.c
86         gcc -Wall -g -shared -o liblib.so lib.c