-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMakefile
56 lines (44 loc) · 1.21 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
CC?=$(CROSS_COMPILE)gcc
CXX?=$(CROSS_COMPILE)g++
AR?= $(CROSS_COMPILE)ar
RANLIB?= $(CROSS_COMPILE)ranlib
CFLAGS=-Wall -std=gnu11 -fPIC
CXXFLAGS=-Wall -std=gnu++11 -fPIC
LDFLAGS=
libname=benejson
ifeq ($(OS),Windows_NT)
static_lib_name=$(libname).lib
dynamic_lib_name=$(libname).dll
else
static_lib_name=lib$(libname).a
dynamic_lib_name=lib$(libname).so
endif
build_dir=build
bin_dir=bin
lib_dir=lib
src_dir=benejson
static_file=$(lib_dir)/$(static_lib_name)
dynamic_file=$(lib_dir)/$(dynamic_lib_name)
objects=$(build_dir)/benejson.o $(build_dir)/pull.o
all: $(static_file) $(dynamic_file)
@echo Complete
header_install :
mkdir -p $(INC_DEST)/benejson
cp benejson/benejson.h benejson/pull.hh $(INC_DEST)/benejson
clean:
rm -rf $(build_dir)
rm -rf $(bin_dir)
rm -rf $(lib_dir)
$(static_file) : $(objects)
mkdir -p $(lib_dir)
$(AR) rcs $@ $^
$(RANLIB) $@
$(dynamic_file) : $(objects)
mkdir -p $(lib_dir)
$(CC) $(CFLAGS) -shared -o $@ $^
$(build_dir)/benejson.o : $(src_dir)/benejson.c $(src_dir)/benejson.h
mkdir -p $(build_dir)
$(CC) $(CFLAGS) -c -o $@ $(src_dir)/benejson.c
$(build_dir)/pull.o : $(src_dir)/pull.cpp $(src_dir)/pull.hh
mkdir -p $(build_dir)
$(CXX) $(CXXFLAGS) -c -o $@ $(src_dir)/pull.cpp