11# -*- makefile -*-
2- # This is the developer's makefile, not the user's makefile.
3- # Don't use it unless you know exactly what you do!
4- # It requires GNU make.
5- # It obeys the environment variables GNULIB_TOOL, CC, CFLAGS
6- # if you have set them.
2+ # This is the developer's makefile.
3+ # It obeys the environment variables CXX, CFLAGS if you have set them.
74
8- ifneq (,)
9- This makefile requires GNU Make.
10- endif
115
12- SHELL = /bin/sh
136GPERF = gperf
7+ CMAKE = cmake
8+ CTEST = ctest
149MKDIR = mkdir -p
1510RM = rm -f
1611
17- CFLAGS := $(CFLAGS ) -Ilib
12+ CXX ?= g++ -Wall
13+
14+ CXXFLAGS := $(CXXFLAGS ) -Ilib
1815
1916all : lib/generated \
2017 lib/generated/aliases.h lib/generated/aliases_sysaix.h lib/generated/aliases_syshpux.h lib/generated/aliases_sysosf1.h lib/generated/aliases_syssolaris.h \
@@ -29,7 +26,7 @@ lib/generated :
2926 $(MKDIR ) lib/generated
3027
3128lib/generated/genaliases : tools/genaliases.cpp
32- $(CXX ) $(CFLAGS ) $< -o $@
29+ $(CXX ) $(CFLAGS ) $( CXXFLAGS ) $( LDFLAGS ) $ < -o $@
3330
3431lib/generated/aliases.gperf : lib/generated/genaliases
3532 ./lib/generated/genaliases $@
@@ -39,7 +36,7 @@ lib/generated/aliases.h : lib/generated/aliases.gperf
3936
4037
4138lib/generated/genaliases_sysaix : tools/genaliases.cpp
42- $(CXX ) $(CFLAGS ) -DUSE_AIX_ALIASES $< -o $@
39+ $(CXX ) $(CFLAGS ) $( CXXFLAGS ) $( LDFLAGS ) -DUSE_AIX_ALIASES $< -o $@
4340
4441lib/generated/aliases_sysaix.gperf : lib/generated/genaliases_sysaix
4542 ./lib/generated/genaliases_sysaix $@
@@ -49,7 +46,7 @@ lib/generated/aliases_sysaix.h : lib/generated/aliases_sysaix.gperf
4946
5047
5148lib/generated/genaliases_syshpux : tools/genaliases.cpp
52- $(CXX ) $(CFLAGS ) -DUSE_HPUX_ALIASES $< -o $@
49+ $(CXX ) $(CFLAGS ) $( CXXFLAGS ) $( LDFLAGS ) -DUSE_HPUX_ALIASES $< -o $@
5350
5451lib/generated/aliases_syshpux.gperf : lib/generated/genaliases_syshpux
5552 ./lib/generated/genaliases_syshpux $@
@@ -59,7 +56,7 @@ lib/generated/aliases_syshpux.h : lib/generated/aliases_syshpux.gperf
5956
6057
6158lib/generated/genaliases_sysosf1 : tools/genaliases.cpp
62- $(CXX ) $(CFLAGS ) -DUSE_OSF1_ALIASES $< -o $@
59+ $(CXX ) $(CFLAGS ) $( CXXFLAGS ) $( LDFLAGS ) -DUSE_OSF1_ALIASES $< -o $@
6360
6461lib/generated/aliases_sysosf1.gperf : lib/generated/genaliases_sysosf1
6562 ./lib/generated/genaliases_sysosf1 $@
@@ -69,7 +66,7 @@ lib/generated/aliases_sysosf1.h : lib/generated/aliases_sysosf1.gperf
6966
7067
7168lib/generated/genaliases_syssolaris : tools/genaliases.cpp
72- $(CXX ) $(CFLAGS ) -DUSE_SOLARIS_ALIASES $< -o $@
69+ $(CXX ) $(CFLAGS ) $( CXXFLAGS ) $( LDFLAGS ) -DUSE_SOLARIS_ALIASES $< -o $@
7370
7471lib/generated/aliases_syssolaris.gperf : lib/generated/genaliases_syssolaris
7572 ./lib/generated/genaliases_syssolaris $@
@@ -79,55 +76,92 @@ lib/generated/aliases_syssolaris.h : lib/generated/aliases_syssolaris.gperf
7976
8077
8178lib/generated/genaliases2_aix : tools/genaliases2.cpp
82- $(CXX ) $(CFLAGS ) -DUSE_AIX $< -o $@
79+ $(CXX ) $(CFLAGS ) $( CXXFLAGS ) $( LDFLAGS ) -DUSE_AIX $< -o $@
8380
8481lib/generated/aliases_aix.h : lib/generated/genaliases2_aix
8582 ./lib/generated/genaliases2_aix aix $@
8683
8784
8885lib/generated/genaliases2_aix_sysaix : tools/genaliases2.cpp
89- $(CXX ) $(CFLAGS ) -DUSE_AIX -DUSE_AIX_ALIASES $< -o $@
86+ $(CXX ) $(CFLAGS ) $( CXXFLAGS ) $( LDFLAGS ) -DUSE_AIX -DUSE_AIX_ALIASES $< -o $@
9087
9188lib/generated/aliases_aix_sysaix.h : lib/generated/genaliases2_aix_sysaix
9289 ./lib/generated/genaliases2_aix_sysaix aix $@
9390
9491
9592lib/generated/genaliases2_osf1 : tools/genaliases2.cpp
96- $(CXX ) $(CFLAGS ) -DUSE_OSF1 $< -o $@
93+ $(CXX ) $(CFLAGS ) $( CXXFLAGS ) $( LDFLAGS ) -DUSE_OSF1 $< -o $@
9794
9895lib/generated/aliases_osf1.h : lib/generated/genaliases2_osf1
9996 ./lib/generated/genaliases2_osf1 osf1 $@
10097
10198
10299lib/generated/genaliases2_osf1_sysosf1 : tools/genaliases2.cpp
103- $(CXX ) $(CFLAGS ) -DUSE_OSF1 -DUSE_OSF1_ALIASES $< -o $@
100+ $(CXX ) $(CFLAGS ) $( CXXFLAGS ) $( LDFLAGS ) -DUSE_OSF1 -DUSE_OSF1_ALIASES $< -o $@
104101
105102lib/generated/aliases_osf1_sysosf1.h : lib/generated/genaliases2_osf1_sysosf1
106103 ./lib/generated/genaliases2_osf1_sysosf1 osf1 $@
107104
108105
109106lib/generated/genaliases2_dos : tools/genaliases2.cpp
110- $(CXX ) $(CFLAGS ) -DUSE_DOS $< -o $@
107+ $(CXX ) $(CFLAGS ) $( CXXFLAGS ) $( LDFLAGS ) -DUSE_DOS $< -o $@
111108
112109lib/generated/aliases_dos.h : lib/generated/genaliases2_dos
113110 ./lib/generated/genaliases2_dos dos $@
114111
115112
116113lib/generated/genaliases2_zos : tools/genaliases2.cpp
117- $(CXX ) $(CFLAGS ) -DUSE_ZOS $< -o $@
114+ $(CXX ) $(CFLAGS ) $( CXXFLAGS ) $( LDFLAGS ) -DUSE_ZOS $< -o $@
118115
119116lib/generated/aliases_zos.h : lib/generated/genaliases2_zos
120117 ./lib/generated/genaliases2_zos zos $@
121118
122119
123120lib/generated/genaliases2_extra : tools/genaliases2.cpp
124- $(CXX ) $(CFLAGS ) -DUSE_EXTRA $< -o $@
121+ $(CXX ) $(CFLAGS ) $( CXXFLAGS ) $( LDFLAGS ) -DUSE_EXTRA $< -o $@
125122
126123lib/generated/aliases_extra.h : lib/generated/genaliases2_extra
127124 ./lib/generated/genaliases2_extra extra $@
128125
129126lib/generated/genflags : tools/genflags.cpp
130- $(CXX ) $(CFLAGS ) $< -o $@
127+ $(CXX ) $(CFLAGS ) $( CXXFLAGS ) $( LDFLAGS ) $ < -o $@
131128
132129lib/generated/flags.h : lib/generated/genflags
133130 ./lib/generated/genflags > $@
131+
132+ test : all
133+ $(RM ) -r -f build
134+ $(MKDIR ) build
135+ cd build && $(CMAKE ) .. -DENABLE_EXTRA=ON -DENABLE_TEST=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=test_install
136+ cd build && $(CMAKE ) --build . --config=Release --verbose
137+ cd build && $(CTEST ) -C Release --verbose
138+ $(CMAKE ) --install build --verbose
139+ ./cpppdist.py
140+ { diff cppp-reiconv-* . --recursive || echo ; }
141+
142+ # Alias to test
143+ check : test
144+
145+ clean :
146+ $(RM ) -r build
147+ $(RM ) lib/generated/aliases.gperf
148+ $(RM ) lib/generated/aliases_sysaix.gperf
149+ $(RM ) lib/generated/aliases_syshpux.gperf
150+ $(RM ) lib/generated/aliases_sysosf1.gperf
151+ $(RM ) lib/generated/aliases_syssolaris.gperf
152+ $(RM ) lib/generated/genaliases
153+ $(RM ) lib/generated/genaliases2_aix
154+ $(RM ) lib/generated/genaliases2_aix_sysaix
155+ $(RM ) lib/generated/genaliases2_dos
156+ $(RM ) lib/generated/genaliases2_extra
157+ $(RM ) lib/generated/genaliases2_osf1
158+ $(RM ) lib/generated/genaliases2_osf1_sysosf1
159+ $(RM ) lib/generated/genaliases2_zos
160+ $(RM ) lib/generated/genaliases_sysaix
161+ $(RM ) lib/generated/genaliases_syshpux
162+ $(RM ) lib/generated/genaliases_sysosf1
163+ $(RM ) lib/generated/genaliases_syssolaris
164+ $(RM ) lib/generated/genflags
165+ $(RM ) tests/data/GB18030-2005.TXT
166+ $(RM ) tests/data/GB18030-2022.TXT
167+ $(RM ) tests/data/UTF-8.TXT
0 commit comments