From 4e9bd3bd0ec5977609fd75d681fcc6dbd24a8c6f Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Wed, 20 May 2009 06:03:09 +0000 Subject: [PATCH] windows-make-cygwin-libs-20090519 LICENSE MIT Unless NOCYGWIN is defined create cygwin .a import libraries for each OpenAFS DLL that is constructed. --- src/WINNT/install/wix/NTMakefile | 9 +++++++-- src/WINNT/install/wix/feature.wxi | 4 ++++ src/WINNT/install/wix/files.wxi | 19 +++++++++++++++++++ src/WINNT/install/wix/platform.wxi | 4 ++++ src/WINNT/pthread/NTMakefile | 1 + src/config/NTMakefile.amd64_w2k | 10 ++++++++++ src/config/NTMakefile.i386_nt40 | 10 ++++++++++ src/config/NTMakefile.i386_w2k | 11 +++++++++++ src/libadmin/adminutil/NTMakefile | 1 + src/libadmin/bos/NTMakefile | 1 + src/libadmin/cfg/NTMakefile | 1 + src/libadmin/client/NTMakefile | 1 + src/libadmin/kas/NTMakefile | 1 + src/libadmin/pts/NTMakefile | 1 + src/libadmin/vos/NTMakefile | 1 + src/libafsauthent/NTMakefile | 1 + src/libafsauthent/afsauthent.def | 4 ++-- src/libafsrpc/NTMakefile | 1 + src/procmgmt/NTMakefile | 1 + 19 files changed, 78 insertions(+), 4 deletions(-) diff --git a/src/WINNT/install/wix/NTMakefile b/src/WINNT/install/wix/NTMakefile index 8ffc5d20b..eedbd5937 100644 --- a/src/WINNT/install/wix/NTMakefile +++ b/src/WINNT/install/wix/NTMakefile @@ -35,6 +35,11 @@ WIXOBJ = $(OUT)\openafs-$(LANG).wixobj !IF ("$(CPU)" == "i386") BINWIXOBJ = $(OUT)\openafs-32bit-tools-$(LANG).wixobj !ENDIF +!IFNDEF NOCYGWIN +WIXCYGOPT=-dCygwinArchives +!ELSE +WIXCYGOPT= +!ENDIF LANGUAGES=en_US de_DE es_ES ja_JP ko_KR pt_BR zh_CN zh_TW @@ -83,7 +88,7 @@ $(WIXOBJ): openafs.wxs $(WIXINCLUDES) -dIDNMRedistDir=$(MSIDNNLS)\\REDIST \ -v0 \ -w0 \ - $(AFSDEV_AUXWIXDEFINES) openafs.wxs + $(WIXCYGOPT) $(AFSDEV_AUXWIXDEFINES) openafs.wxs !IF ("$(CPU)" == "i386") $(BINWIXOBJ): oafwbins.wxs $(WIXINCLUDES) @@ -98,7 +103,7 @@ $(BINWIXOBJ): oafwbins.wxs $(WIXINCLUDES) -dCellDbFile=CellServDB \ -v0 \ -w0 \ - $(AFSDEV_AUXWIXDEFINES) oafwbins.wxs + $(WIXCYGOPT) $(AFSDEV_AUXWIXDEFINES) oafwbins.wxs $(BINMSIFILE): $(BINWIXOBJ) light -nologo -out $(BINMSIFILE) \ diff --git a/src/WINNT/install/wix/feature.wxi b/src/WINNT/install/wix/feature.wxi index 6d262e8a5..873fb9785 100644 --- a/src/WINNT/install/wix/feature.wxi +++ b/src/WINNT/install/wix/feature.wxi @@ -247,6 +247,10 @@ + + + + + + + + + + + @@ -1739,6 +1746,18 @@ + + + + + + + + + + + + diff --git a/src/WINNT/install/wix/platform.wxi b/src/WINNT/install/wix/platform.wxi index 473fc4490..86e9bf42a 100644 --- a/src/WINNT/install/wix/platform.wxi +++ b/src/WINNT/install/wix/platform.wxi @@ -79,6 +79,8 @@ + + @@ -183,6 +185,8 @@ + + diff --git a/src/WINNT/pthread/NTMakefile b/src/WINNT/pthread/NTMakefile index ab6a9ae40..27ada43db 100644 --- a/src/WINNT/pthread/NTMakefile +++ b/src/WINNT/pthread/NTMakefile @@ -32,6 +32,7 @@ $(PTHR_DLLFILE): $(PTHR_DLLOBJS) $(_VC_MANIFEST_EMBED_DLL) $(DLLPREP) $(CODESIGN_USERLAND) + $(MAKECYGLIB) --input-def pthread.def install: $(PTHR_DLLFILE) $(LIBINCLUDES) diff --git a/src/config/NTMakefile.amd64_w2k b/src/config/NTMakefile.amd64_w2k index 49b1c93ce..1554fbf38 100644 --- a/src/config/NTMakefile.amd64_w2k +++ b/src/config/NTMakefile.amd64_w2k @@ -465,3 +465,13 @@ AFSDEV_AUXMIDLFLAGS=/env x64 /x64 /Oicf LEX = flex -l YACC = bison +######### Create Cygwin .a files +# This macro should be invoked as a build step for a DLL target. +!IFNDEF NOCYGWIN +MAKECYGLIB=\ + for %%C in (as.exe) do \ + if exist %%~$$PATH:C \ + dlltool --dllname $(@B).dll --output-lib $(@R).a --temp-prefix $(OUT) -S %%~$$PATH:C +!ELSE +MAKECYGLIB=echo Skipping Cygwin archive +!ENDIF diff --git a/src/config/NTMakefile.i386_nt40 b/src/config/NTMakefile.i386_nt40 index a22bad658..0433b2cbf 100644 --- a/src/config/NTMakefile.i386_nt40 +++ b/src/config/NTMakefile.i386_nt40 @@ -455,3 +455,13 @@ AFSDEV_AUXMIDLFLAGS=$(AFSDEV_AUXMIDLFLAGS) /Oi LEX = flex -l YACC = bison +######### Create Cygwin .a files +# This macro should be invoked as a build step for a DLL target. +!IFNDEF NOCYGWIN +MAKECYGLIB=\ + for %%C in (as.exe) do \ + if exist %%~$$PATH:C \ + dlltool --dllname $(@B).dll --output-lib $(@R).a --temp-prefix $(OUT) -S %%~$$PATH:C +!ELSE +MAKECYGLIB=echo Skipping Cygwin archive +!ENDIF diff --git a/src/config/NTMakefile.i386_w2k b/src/config/NTMakefile.i386_w2k index 61b6dc981..cc02f87f1 100644 --- a/src/config/NTMakefile.i386_w2k +++ b/src/config/NTMakefile.i386_w2k @@ -482,3 +482,14 @@ AFSDEV_AUXMIDLFLAGS=/env win32 /win32 /no_robust /Oicf LEX = flex -l YACC = bison + +######### Create Cygwin .a files +# This macro should be invoked as a build step for a DLL target. +!IFNDEF NOCYGWIN +MAKECYGLIB=\ + for %%C in (as.exe) do \ + if exist %%~$$PATH:C \ + dlltool --dllname $(@B).dll --output-lib $(@R).a --temp-prefix $(OUT) -S %%~$$PATH:C +!ELSE +MAKECYGLIB=echo Skipping Cygwin archive +!ENDIF diff --git a/src/libadmin/adminutil/NTMakefile b/src/libadmin/adminutil/NTMakefile index d6b085e44..7f754481c 100644 --- a/src/libadmin/adminutil/NTMakefile +++ b/src/libadmin/adminutil/NTMakefile @@ -147,6 +147,7 @@ $(DLLFILE): $(DLLOBJS) $(DLLLIBS) $(_VC_MANIFEST_EMBED_DLL) $(DLLPREP) $(CODESIGN_USERLAND) + $(MAKECYGLIB) --input-def afsadminutil.def $(COPY) $*.lib $(ILIBDIR) $(DEL) $*.lib $*.exp diff --git a/src/libadmin/bos/NTMakefile b/src/libadmin/bos/NTMakefile index d3e9d0646..1610a2ef4 100644 --- a/src/libadmin/bos/NTMakefile +++ b/src/libadmin/bos/NTMakefile @@ -46,6 +46,7 @@ $(DLLFILE): $(DLLOBJS) $(DLLLIBS) $(_VC_MANIFEST_EMBED_DLL) $(DLLPREP) $(CODESIGN_USERLAND) + $(MAKECYGLIB) --input-def bosadmin.def $(COPY) $*.lib $(ILIBDIR) $(DEL) $*.lib $*.exp diff --git a/src/libadmin/cfg/NTMakefile b/src/libadmin/cfg/NTMakefile index 0867464a0..4fd146d95 100644 --- a/src/libadmin/cfg/NTMakefile +++ b/src/libadmin/cfg/NTMakefile @@ -63,6 +63,7 @@ $(DLLFILE): $(DLLOBJS) $(DLLLIBS) $(_VC_MANIFEST_EMBED_DLL) $(DLLPREP) $(CODESIGN_USERLAND) + $(MAKECYGLIB) --input-def afscfgadmin.def $(COPY) $*.lib $(ILIBDIR) $(DEL) $*.lib $*.exp diff --git a/src/libadmin/client/NTMakefile b/src/libadmin/client/NTMakefile index 2a7f0fdc0..3008eeb3e 100644 --- a/src/libadmin/client/NTMakefile +++ b/src/libadmin/client/NTMakefile @@ -34,6 +34,7 @@ $(DLLFILE): $(DLLOBJS) $(DLLLIBS) $(_VC_MANIFEST_EMBED_DLL) $(DLLPREP) $(CODESIGN_USERLAND) + $(MAKECYGLIB) --input-def clientadmin.def $(COPY) $*.lib $(ILIBDIR) $(DEL) $*.lib $*.exp diff --git a/src/libadmin/kas/NTMakefile b/src/libadmin/kas/NTMakefile index e138b6d05..8419e881f 100644 --- a/src/libadmin/kas/NTMakefile +++ b/src/libadmin/kas/NTMakefile @@ -43,6 +43,7 @@ $(DLLFILE): $(DLLOBJS) $(DLLLIBS) $(_VC_MANIFEST_EMBED_DLL) $(DLLPREP) $(CODESIGN_USERLAND) + $(MAKECYGLIB) --input-def kasadmin.def $(COPY) $*.lib $(ILIBDIR) $(DEL) $*.lib $*.exp diff --git a/src/libadmin/pts/NTMakefile b/src/libadmin/pts/NTMakefile index 145986025..1db68b0d5 100644 --- a/src/libadmin/pts/NTMakefile +++ b/src/libadmin/pts/NTMakefile @@ -46,6 +46,7 @@ $(DLLFILE): $(DLLOBJS) $(DLLLIBS) $(_VC_MANIFEST_EMBED_DLL) $(DLLPREP) $(CODESIGN_USERLAND) + $(MAKECYGLIB) --input-def ptsadmin.def $(COPY) $*.lib $(ILIBDIR) $(DEL) $*.lib $*.exp diff --git a/src/libadmin/vos/NTMakefile b/src/libadmin/vos/NTMakefile index 28bf5967b..e1e1dfad5 100644 --- a/src/libadmin/vos/NTMakefile +++ b/src/libadmin/vos/NTMakefile @@ -67,6 +67,7 @@ $(DLLFILE): $(DLLOBJS) $(DLLLIBS) $(_VC_MANIFEST_EMBED_DLL) $(DLLPREP) $(CODESIGN_USERLAND) + $(MAKECYGLIB) --input-def vosadmin.def $(COPY) $*.lib $(ILIBDIR) $(DEL) $*.lib $*.exp diff --git a/src/libafsauthent/NTMakefile b/src/libafsauthent/NTMakefile index 576e1cea8..f4f8fcca6 100644 --- a/src/libafsauthent/NTMakefile +++ b/src/libafsauthent/NTMakefile @@ -149,6 +149,7 @@ $(LIBFILE): $(DLLOBJS) $(DLLLIBS) $(RXOBJS) $(_VC_MANIFEST_EMBED_DLL) $(DLLPREP) $(CODESIGN_USERLAND) + $(MAKECYGLIB) --input-def afsauthent.def # Definitions for generating versioninfo resources $(OUT)\afsauthent.res: AFS_component_version_number.h diff --git a/src/libafsauthent/afsauthent.def b/src/libafsauthent/afsauthent.def index 2e59483e2..7cb09b09f 100644 --- a/src/libafsauthent/afsauthent.def +++ b/src/libafsauthent/afsauthent.def @@ -108,8 +108,8 @@ EXPORTS PR_UpdateEntry @106 PR_ListEntries @107 PR_ListSuperGroups @108 - ka_AuthSpecificServersConn @109 - ka_KeyCheckSum @110 +; ka_AuthSpecificServersConn @109 /* duplicate */ +; ka_KeyCheckSum @110 /* duplicate */ rx_Finalize @111 rx_InitHost @112 VOTE_GetSyncSite @113 diff --git a/src/libafsrpc/NTMakefile b/src/libafsrpc/NTMakefile index b3a160944..6491bb0b7 100644 --- a/src/libafsrpc/NTMakefile +++ b/src/libafsrpc/NTMakefile @@ -99,6 +99,7 @@ $(LIBFILE): $(DLLOBJS) $(DLLLIBS) $(_VC_MANIFEST_EMBED_DLL) $(DLLPREP) $(CODESIGN_USERLAND) + $(MAKECYGLIB) --input-def afsrpc.def # Definitions for generating versioninfo resources $(OUT)\afsrpc.res: AFS_component_version_number.h diff --git a/src/procmgmt/NTMakefile b/src/procmgmt/NTMakefile index 1bab98d31..c1571e5d5 100644 --- a/src/procmgmt/NTMakefile +++ b/src/procmgmt/NTMakefile @@ -38,6 +38,7 @@ $(DLLFILE): $(DLLOBJS) $(DLLRES) $(DLLLIBS) $(_VC_MANIFEST_EMBED_DLL) $(DLLPREP) $(CODESIGN_USERLAND) + $(MAKECYGLIB) --input-def afsprocmgmt.def $(COPY) $*.lib $(ILIBDIR) $(DEL) $*.lib $*.exp -- 2.39.5