@@ -11,7 +11,9 @@ TITLE = pam_passwdqc
1111SHARED_LIB = libpasswdqc.so.1
1212DEVEL_LIB = libpasswdqc.so
1313SHARED_LIB_DARWIN = libpasswdqc.0.dylib
14+ SHARED_LIB_CYGWIN = cygpasswdqc-0.dll
1415DEVEL_LIB_DARWIN = libpasswdqc.dylib
16+ DEVEL_LIB_CYGWIN = libpasswdqc.dll.a
1517MAP_LIB = libpasswdqc.map
1618PAM_SO_SUFFIX =
1719SHARED_PAM = $(TITLE ) .so$(PAM_SO_SUFFIX )
@@ -37,6 +39,7 @@ BINMODE = 755
3739CONFDIR = /etc
3840CONFMODE = 644
3941SHARED_LIBDIR = /lib
42+ SHARED_LIBDIR_CYGWIN = /usr/bin
4043SHARED_LIBDIR_SUN = /usr/lib
4144SHARED_LIBDIR_REL = ../..$(SHARED_LIBDIR )
4245DEVEL_LIBDIR = /usr/lib
@@ -82,6 +85,10 @@ LDFLAGS_lib_LINUX = $(LDFLAGS_shared_LINUX) \
8285 -Wl,--soname,$(SHARED_LIB ) ,--version-script,$(MAP_LIB )
8386LDFLAGS_lib_SUN = $(LDFLAGS_shared_SUN )
8487LDFLAGS_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
8592LDFLAGS_pam = $(LDFLAGS_shared )
8693LDFLAGS_pam_LINUX = $(LDFLAGS_shared_LINUX ) \
8794 -Wl,--version-script,$(MAP_PAM )
@@ -108,6 +115,7 @@ LDLIBS_pam_DARWIN = -lpam -lSystem
108115
109116CONFIGS = passwdqc.conf
110117BINS = pwqgen pwqcheck pwqfilter
118+ BINS_CYGWIN = $(BINS ) $(SHARED_LIB_CYGWIN )
111119PROJ = $(SHARED_LIB ) $(DEVEL_LIB ) $(SHARED_PAM ) $(BINS ) $(PKGCONFIG )
112120OBJS_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
113121OBJS_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