-
Notifications
You must be signed in to change notification settings - Fork 8
/
Makefile.mingw
91 lines (64 loc) · 2 KB
/
Makefile.mingw
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
# Makefile for building Popt with MinGW (gcc and gnumake)
POPT_PREFIX ?= C:\popt
POPT_SRC_DIR ?= .
OPT_FLAGS = -Os -DNDEBUG
WARNINGS = -Wall -Wextra
INCLUDE_DIRS = -I$(POPT_SRC_DIR)
DEFINITIONS = -DHAVE_CONFIG_H
CFLAGS = $(OPT_FLAGS) $(WARNINGS) $(INCLUDE_DIRS) $(DEFINITIONS)
CXXFLAGS = $(CFLAGS)
CC = gcc
CXX = g++
RM = del
MKDIR = mkdir
CP = copy
CONFIG_HEADER = config.h
CONFIG_MINGW_HEADER_NAME = config.h.mingw
#CONFIGMAKE_HEADER = configmake.h
#CONFIGMAKE_MINGW_HEADER_NAME = configmake.h.mingw
POPT_SRC = $(POPT_SRC_DIR)/lookup3.c \
$(POPT_SRC_DIR)/poptconfig.c \
$(POPT_SRC_DIR)/popthelp.c \
$(POPT_SRC_DIR)/poptint.c \
$(POPT_SRC_DIR)/poptparse.c \
$(POPT_SRC_DIR)/popt.c
POPT_HEADERS = $(POPT_SRC_DIR)/config.h \
$(POPT_SRC_DIR)/configmake.h \
$(POPT_SRC_DIR)/popt.h \
$(POPT_SRC_DIR)/poptint.h \
$(POPT_SRC_DIR)/system.h
POPT_PUBLIC_HEADERS ?= $(POPT_SRC_DIR)\popt.h
LIB_OBJ = lookup3.o poptconfig.o popthelp.o poptint.o poptparse.o popt.o
LIB_BIN = libpopt.a
TEST_BINS = tdict.exe test1.exe test2.exe
OBJ = $(LIB_OBJ) $(TEST_OBJ)
BIN = $(LIB_BIN) $(TEST_BINS)
all: $(BIN) $(TEST_BINS)
$(CONFIG_HEADER):
$(CP) $(CONFIG_MINGW_HEADER_NAME) $(CONFIG_HEADER)
$(CP) $(CONFIGMAKE_MINGW_HEADER_NAME) $(CONFIGMAKE_HEADER)
%.o: $(POPT_SRC_DIR)/%.c $(CONFIG_HEADER)
$(CC) -c $< -o $@ $(CPPFLAGS) $(CFLAGS)
$(LIB_BIN): $(LIB_OBJ)
$(AR) rc $@ $^
tdict.exe: tdict.c $(LIB_BIN)
$(CC) -o $@ $(CPPFLAGS) $(CFLAGS) $< $(LIB_BIN)
test1.exe: test1.c $(LIB_BIN)
$(CC) -o $@ $(CPPFLAGS) $(CFLAGS) $< $(LIB_BIN)
test2.exe: test2.c $(LIB_BIN)
$(CC) -o $@ $(CPPFLAGS) $(CFLAGS) $< $(LIB_BIN)
RANLIB ?= ranlib
tests: $(TEST_BINS)
install: $(LIB_BIN) $(POPT_PUBLIC_HEADERS)
$(MKDIR) $(POPT_PREFIX)\include
$(MKDIR) $(POPT_PREFIX)\lib
$(CP) $(POPT_PUBLIC_HEADERS) $(POPT_PREFIX)\include
$(RANLIB) $(LIB_BIN)
$(CP) $(LIB_BIN) $(POPT_PREFIX)\lib
.PHONY: install
uninstall:
rmdir /S /Q $(POPT_PREFIX)
.PHONY: uninstall
clean:
$(RM) $(OBJ) $(BIN) $(CONFIG_HEADER)
.PHONY: clean