Skip to content

Commit e0dadea

Browse files
Chad Doughertysolardiz
authored andcommitted
Makefile: add Cygwin support
enable using libpasswdqc and utils on Cygwin Signed-off-by: Chad Dougherty <[email protected]>
1 parent 0e149d5 commit e0dadea

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

Makefile

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ TITLE = pam_passwdqc
1111
SHARED_LIB = libpasswdqc.so.1
1212
DEVEL_LIB = libpasswdqc.so
1313
SHARED_LIB_DARWIN = libpasswdqc.0.dylib
14+
SHARED_LIB_CYGWIN = cygpasswdqc-0.dll
1415
DEVEL_LIB_DARWIN = libpasswdqc.dylib
16+
DEVEL_LIB_CYGWIN = libpasswdqc.dll.a
1517
MAP_LIB = libpasswdqc.map
1618
PAM_SO_SUFFIX =
1719
SHARED_PAM = $(TITLE).so$(PAM_SO_SUFFIX)
@@ -37,6 +39,7 @@ BINMODE = 755
3739
CONFDIR = /etc
3840
CONFMODE = 644
3941
SHARED_LIBDIR = /lib
42+
SHARED_LIBDIR_CYGWIN = /usr/bin
4043
SHARED_LIBDIR_SUN = /usr/lib
4144
SHARED_LIBDIR_REL = ../..$(SHARED_LIBDIR)
4245
DEVEL_LIBDIR = /usr/lib
@@ -82,6 +85,10 @@ LDFLAGS_lib_LINUX = $(LDFLAGS_shared_LINUX) \
8285
-Wl,--soname,$(SHARED_LIB),--version-script,$(MAP_LIB)
8386
LDFLAGS_lib_SUN = $(LDFLAGS_shared_SUN)
8487
LDFLAGS_lib_HP = $(LDFLAGS_shared_HP)
88+
LDFLAGS_lib_CYGWIN = $(LDFLAGS_shared) \
89+
-Wl,--out-implib=$(DEVEL_LIB_CYGWIN) \
90+
-Wl,--export-all-symbols \
91+
-Wl,--enable-auto-import
8592
LDFLAGS_pam = $(LDFLAGS_shared)
8693
LDFLAGS_pam_LINUX = $(LDFLAGS_shared_LINUX) \
8794
-Wl,--version-script,$(MAP_PAM)
@@ -108,6 +115,7 @@ LDLIBS_pam_DARWIN = -lpam -lSystem
108115

109116
CONFIGS = passwdqc.conf
110117
BINS = pwqgen pwqcheck pwqfilter
118+
BINS_CYGWIN = $(BINS) $(SHARED_LIB_CYGWIN)
111119
PROJ = $(SHARED_LIB) $(DEVEL_LIB) $(SHARED_PAM) $(BINS) $(PKGCONFIG)
112120
OBJS_LIB = concat.o md4.o passwdqc_check.o passwdqc_filter.o passwdqc_load.o passwdqc_memzero.o passwdqc_parse.o passwdqc_random.o wordset_4k.o
113121
OBJS_PAM = pam_passwdqc.o passwdqc_memzero.o
@@ -145,6 +153,14 @@ all locales pam utils install install_lib install_locales install_pam install_ut
145153
SECUREDIR="$(SECUREDIR_DARWIN)" \
146154
LDLIBS_pam="$(LDLIBS_pam_DARWIN)" \
147155
$@_wrapped;; \
156+
CYGWIN_NT*) $(MAKE) CPPFLAGS_lib="$(CPPFLAGS_lib)" \
157+
SHARED_LIB="$(SHARED_LIB_CYGWIN)" \
158+
SHARED_LIBDIR="$(SHARED_LIBDIR_CYGWIN)" \
159+
DEVEL_LIB="$(DEVEL_LIB_CYGWIN)" \
160+
LDFLAGS_lib="$(LDFLAGS_lib_CYGWIN)" \
161+
BINS="$(BINS_CYGWIN)" \
162+
CYGWIN=true \
163+
$@_wrapped;; \
148164
*) $(MAKE) $@_wrapped;; \
149165
esac
150166

@@ -158,7 +174,9 @@ $(SHARED_LIB): $(OBJS_LIB) $(MAP_LIB)
158174
$(LD_lib) $(LDFLAGS_lib) $(OBJS_LIB) $(LDLIBS_lib) -o $(SHARED_LIB)
159175

160176
$(DEVEL_LIB): $(SHARED_LIB)
177+
ifndef CYGWIN
161178
$(LN_s) $(SHARED_LIB) $(DEVEL_LIB)
179+
endif
162180

163181
$(SHARED_PAM): $(OBJS_PAM) $(MAP_PAM) $(DEVEL_LIB)
164182
$(LD_lib) $(LDFLAGS_pam) $(OBJS_PAM) $(LDLIBS_pam) -L. -lpasswdqc -o $(SHARED_PAM)
@@ -207,8 +225,12 @@ install_lib_wrapped:
207225
$(INSTALL) -m $(SHLIBMODE) $(SHARED_LIB) $(DESTDIR)$(SHARED_LIBDIR)/
208226

209227
$(MKDIR) $(DESTDIR)$(DEVEL_LIBDIR)
228+
ifndef CYGWIN
210229
$(LN_s) $(SHARED_LIBDIR_REL)/$(SHARED_LIB) \
211230
$(DESTDIR)$(DEVEL_LIBDIR)/$(DEVEL_LIB)
231+
else
232+
$(INSTALL) -m $(SHLIBMODE) $(DEVEL_LIB) $(DESTDIR)$(DEVEL_LIBDIR)/
233+
endif
212234

213235
$(MKDIR) $(DESTDIR)$(INCLUDEDIR)
214236
$(INSTALL) -m $(INCMODE) $(HEADER) $(DESTDIR)$(INCLUDEDIR)/

0 commit comments

Comments
 (0)