]> granicus.if.org Git - nethack/commitdiff
x64 command line build cleanup
authornethack.allison <nethack.allison>
Sun, 29 Jan 2012 16:50:56 +0000 (16:50 +0000)
committernethack.allison <nethack.allison>
Sun, 29 Jan 2012 16:50:56 +0000 (16:50 +0000)
64-bit linker had a number of warnings that the 32-bit linker did not.
It turned out to be because the 64-bit compiler is more picky about
declaring DLL exports 2-different ways, even if they are essentially
the same. The 32-bit linkder didn't complain. It is described here:
http://support.microsoft.com/kb/835326

The warnings that this suppresses are:

nhdefkey.c
Linking hdefkey.dll
Microsoft (R) Incremental Linker Version 10.00.40219.01
Copyright (C) Microsoft Corporation.  All rights reserved.

nhdefkey.o : warning LNK4197: export 'ProcessKeystroke' specified multiple times; using first specification
nhdefkey.o : warning LNK4197: export 'NHkbhit' specified multiple times; using first specification
nhdefkey.o : warning LNK4197: export 'CheckInput' specified multiple times; using first specification
nhdefkey.o : warning LNK4197: export 'SourceWhere' specified multiple times; using first specification
nhdefkey.o : warning LNK4197: export 'SourceAuthor' specified multiple times; using first specification
nhdefkey.o : warning LNK4197: export 'KeyHandlerName' specified multiple times; using first specification
   Creating library o\nhdefkey.lib and object o\nhdefkey.exp

nh340key.c
Linking h340key.dll
nh340key.o : warning LNK4197: export 'ProcessKeystroke' specified multiple times; using first specification
nh340key.o : warning LNK4197: export 'NHkbhit' specified multiple times; using first specification
nh340key.o : warning LNK4197: export 'CheckInput' specified multiple times; using first specification
nh340key.o : warning LNK4197: export 'SourceWhere' specified multiple times; using first specification
nh340key.o : warning LNK4197: export 'SourceAuthor' specified multiple times; using first specification
nh340key.o : warning LNK4197: export 'KeyHandlerName' specified multiple times; using first specification
   Creating library o\nh340key.lib and object o\nh340key.exp

nhraykey.c
Linking hraykey.dll
nhraykey.o : warning LNK4197: export 'ProcessKeystroke' specified multiple times; using first specification
nhraykey.o : warning LNK4197: export 'CheckInput' specified multiple times; using first specification
nhraykey.o : warning LNK4197: export 'NHkbhit' specified multiple times; using first specification
nhraykey.o : warning LNK4197: export 'SourceWhere' specified multiple times; using first specification
nhraykey.o : warning LNK4197: export 'SourceAuthor' specified multiple times; using first specification
nhraykey.o : warning LNK4197: export 'KeyHandlerName' specified multiple times; using first specification
   Creating library o\nhraykey.lib and object o\nhraykey.exp

sys/winnt/Makefile.msc

index f3e50702dc43408fa22f4c8c76a43da0aaf7e320..5ab9c86f687963ed20125c8cdbcf5267c7039fcb 100644 (file)
@@ -233,13 +233,13 @@ LIBS= user32.lib winmm.lib $(ZLIB)
 !IF ("$(GRAPHICAL)"=="Y")
 
 cflagsGame = $(cdebug) $(cflags2) $(guiflags) $(INCLDIR) \
-            $(WINPFLAG) $(DLBFLG) $(GAMEPDBFILE) $(GAMEMAPFILE) /W3
+            $(WINPFLAG) $(DLBFLG) $(GAMEPDBFILE) $(GAMEMAPFILE)
 lflagsGame = $(ldebug) $(lflags) $(guilibs)
 
 !ELSE
 
 cflagsGame = $(cdebug) $(cflags2) $(conflags) $(INCLDIR) \
-            $(WINPFLAG) $(DLBFLG) $(GAMEPDBFILE) $(GAMEMAPFILE) /W3
+            $(WINPFLAG) $(DLBFLG) $(GAMEPDBFILE) $(GAMEMAPFILE)
 lflagsGame = $(ldebug) $(lflags) $(conlibs)
 
 !ENDIF
@@ -626,49 +626,22 @@ $(O)gamedir.tag:
        @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
        @echo directory created > $@
 
-$(O)nhdefkey.def:
-       @echo EXPORTS >$@
-       @echo    ProcessKeystroke >>$@
-       @echo    NHkbhit >>$@
-       @echo    CheckInput >>$@
-       @echo    SourceWhere >>$@
-       @echo    SourceAuthor >>$@
-       @echo    KeyHandlerName >>$@
-
-$(GAMEDIR)\nhdefkey.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def
+$(GAMEDIR)\nhdefkey.dll : $(O)$(@B).o $(O)gamedir.tag
        @echo Linking $@
        @$(link) $(ldebug) /RELEASE /DLL user32.lib \
-               /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).map" /DEF:$(O)$(@B).def \
+               /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).map" \
                /IMPLIB:$(O)$(@B).lib -out:$@ $(O)$(@B).o
 
-$(O)nh340key.def:
-       @echo EXPORTS >$@
-       @echo    ProcessKeystroke >>$@
-       @echo    NHkbhit >>$@
-       @echo    CheckInput >>$@
-       @echo    SourceWhere >>$@
-       @echo    SourceAuthor >>$@
-       @echo    KeyHandlerName >>$@
-
-$(GAMEDIR)\nh340key.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def
+$(GAMEDIR)\nh340key.dll : $(O)$(@B).o $(O)gamedir.tag
        @echo Linking $@
        @$(link) $(ldebug) /RELEASE /NOLOGO /DLL user32.lib \
-               /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).map" /DEF:$(O)$(@B).def \
+               /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).map" \
                /IMPLIB:$(O)$(@B).lib -out:$@ $(O)$(@B).o
 
-$(O)nhraykey.def:
-       @echo EXPORTS >$@
-       @echo    ProcessKeystroke >>$@
-       @echo    NHkbhit >>$@
-       @echo    CheckInput >>$@
-       @echo    SourceWhere >>$@
-       @echo    SourceAuthor >>$@
-       @echo    KeyHandlerName >>$@
-
-$(GAMEDIR)\nhraykey.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def
+$(GAMEDIR)\nhraykey.dll : $(O)$(@B).o $(O)gamedir.tag
        @echo Linking $@
        @$(link) $(ldebug) /RELEASE /NOLOGO /DLL user32.lib \
-               /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).map" /DEF:$(O)$(@B).def \
+               /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).map" \
                /IMPLIB:$(O)$(@B).lib -out:$@ $(O)$(@B).o
 
 #
@@ -907,8 +880,8 @@ $(O)obj.tag:
 
 envchk:
 !      IF "$(CL)"!=""
-          @echo Warning, the CL Environment variable is defined:
-          @echo CL=$(CL)
+#         @echo Warning, the CL Environment variable is defined:
+#         @echo CL=$(CL)
 !      ENDIF
 !   IF "$(GRAPHICAL)"=="Y"
           @echo ----