summaryrefslogtreecommitdiff
path: root/Makefile.mingw
blob: acdf0a195c1720c1a51a31ecb1460794253c6057 (plain)
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