-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
90 lines (81 loc) · 2.81 KB
/
Makefile
File metadata and controls
90 lines (81 loc) · 2.81 KB
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
CC = gcc
CFLAGS = -Wall -O2
GSL = `gsl-config --libs`
LCRYPTO = -lcrypto
LM = -lm
KEYGPROG = keygen_IP2S
KEYGSRCS = keygen.c
SIGNPROG = sign_IP2S
SIGNSRCS = sign.c
VERFPROG = verify_IP2S
VERFSRCS = verify.c
MSGPROG = mkmsg_IP2S
MSGSRCS = mkmsg.c
MKALPROG = mkalg_IP2S
MKALSRCS = mkalg.c
ifeq ($(OS),Windows_NT)
KEYGPROG := $(addsuffix _win.exe,$(KEYGPROG))
SIGNPROG := $(addsuffix _win.exe,$(SIGNPROG))
VERFPROG := $(addsuffix _win.exe,$(VERFPROG))
MSGPROG := $(addsuffix _win.exe,$(MSGPROG))
MKALPROG := $(addsuffix _win.exe,$(MKALPROG))
EXTS := _win
KEYGOBJS := $(KEYGSRCS:.c=$(EXTS).o)
SIGNOBJS := $(SIGNSRCS:.c=$(EXTS).o)
VERFOBJS := $(VERFSRCS:.c=$(EXTS).o)
MSGOBJS := $(MSGSRCS:.c=$(EXTS).o)
MKALOBJS := $(MKALSRCS:.c=$(EXTS).o)
else
ifeq ($(shell uname -s),Linux)
KEYGPROG := $(addsuffix _linux,$(KEYGPROG))
SIGNPROG := $(addsuffix _linux,$(SIGNPROG))
VERFPROG := $(addsuffix _linux,$(VERFPROG))
MSGPROG := $(addsuffix _linux,$(MSGPROG))
MKALPROG := $(addsuffix _linux,$(MKALPROG))
EXTS := _linux
KEYGOBJS := $(KEYGSRCS:.c=$(EXTS).o)
SIGNOBJS := $(SIGNSRCS:.c=$(EXTS).o)
VERFOBJS := $(VERFSRCS:.c=$(EXTS).o)
MSGOBJS := $(MSGSRCS:.c=$(EXTS).o)
MKALOBJS := $(MKALSRCS:.c=$(EXTS).o)
endif
ifeq ($(shell uname -s),Darwin)
KEYGPROG := $(addsuffix _osx,$(KEYGPROG))
SIGNPROG := $(addsuffix _osx,$(SIGNPROG))
VERFPROG := $(addsuffix _osx,$(VERFPROG))
MSGPROG := $(addsuffix _osx,$(MSGPROG))
MKALPROG := $(addsuffix _osx,$(MKALPROG))
EXTS := _osx
KEYGOBJS := $(KEYGSRCS:.c=$(EXTS).o)
SIGNOBJS := $(SIGNSRCS:.c=$(EXTS).o)
VERFOBJS := $(VERFSRCS:.c=$(EXTS).o)
MSGOBJS := $(MSGSRCS:.c=$(EXTS).o)
MKALOBJS := $(MKALSRCS:.c=$(EXTS).o)
endif
endif
.SUFFIXES: .c $(EXTS).o
.PHONY: all
all: depend $(KEYGPROG) $(KEYGOBJS) $(SIGNPROG) $(SIGNOBJS) $(VERFPROG) $(VERFOBJS) $(MSGPROG) $(MSGOBJS) $(MKALPROG) $(MKALOBJS)
$(KEYGPROG): $(KEYGOBJS)
$(CC) $(KEYGOBJS) $(GSL) -o $@ $(LM) $(LCRYPTO)
$(SIGNPROG): $(SIGNOBJS)
$(CC) $(SIGNOBJS) $(GSL) -o $@ $(LM) $(LCRYPTO)
$(VERFPROG): $(VERFOBJS)
$(CC) $(VERFOBJS) $(GSL) -o $@ $(LM) $(LCRYPTO)
$(MSGPROG): $(MSGOBJS)
$(CC) $(MSGOBJS) $(GSL) -o $@ $(LM) $(LCRYPTO)
$(MKALPROG): $(MKALOBJS)
$(CC) $(MKALOBJS) $(GSL) -o $@ $(LM) $(LCRYPTO)
.c$(EXTS).o:
$(CC) $(CFLAGS) -c $< $(GSL) -o $*$(EXTS).o $(LM) $(LCRYPTO)
.PHONY: clean
clean:
$(RM) $(KEYGPROG) $(KEYGOBJS) $(SIGNPROG) $(SIGNOBJS) $(VERFPROG) $(VERFOBJS) $(MSGPROG) $(MSGOBJS) $(MKALPROG) $(MKALOBJS) depend$(EXTS).inc
.PHONY: depend
#$(OBJS:.o=.c)
# ex.) OBJS = main.oのとき、$(OBJS:.o=.c) = main.c
depend: $(KEYGSRCS) $(SIGNSRCS) $(VERFSRCS) $(MSGSRCS) $(MKALSRCS)#$(OBJS:.o=.c)
-@ $(RM) depend$(EXTS).inc
#.hファイルだけ抜き出し
-@ for i in $^; do cpp -MM $$i|sed "s/\.o/$(EXTS).o/g"|sed "s/\ [_a-zA-Z0-9][_a-zA-Z0-9]*\.c//g" >> depend$(EXTS).inc; done
-include depend$(EXTS).inc