Opened 18 years ago

Closed 9 years ago

#1180 closed enhancement (wontfix)

Win32 makefile updates to allow renaming gdal_i.lib, gdal.lib and versioning.

Reported by: warmerdam Owned by: warmerdam
Priority: normal Milestone:
Component: ConfigBuild Version: unspecified
Severity: minor Keywords:
Cc: Mateusz Łoskot

Description (last modified by Mateusz Łoskot)

Frank,

Here are several changes I made to the 1.3.2 makefiles to support building at DeLorme. Can you take a look at them and tell me if they are of any use to you:

<<Makefile>> <<makefile.vc>> <<makefile.vc>> <<nmake.opt>>
src/makefile.vc
---------------------
63,64c63,64
<       if exist gdal.lib del gdal.lib
<       lib /out:gdal.lib $(LIBOBJ)
---
>       if exist $(GDAL_LIB) del $(GDAL_LIB)
>       lib /out:$(GDAL_LIB) $(LIBOBJ)
91c91
<       if exist gdal.lib del gdal.lib
---
>       if exist $(GDAL_LIB) del $(GDAL_LIB)
93c93
<       if exist gdal_i.lib del gdal_i.*
---
>       if exist $(GDAL_EXP) del $(GDAL_EXP)
157c157
<       cp gdal.lib port\*.h gcore\*.h ogr\*.h $(DISTDIR)
---
>       cp $(GDAL_LIB) port\*.h gcore\*.h ogr\*.h $(DISTDIR)
163c163
<                /out:$(GDAL_DLL) /implib:gdal_i.lib $(LINKER_FLAGS)
---
>                /out:$(GDAL_DLL) /implib:$(GDAL_EXP) $(LINKER_FLAGS)
169c169,170
<       if exist $(GDAL_DLL).manifest xcopy /y /r /d /f $(GDAL_DLL).manifest $(BIND
---
>       if exist $(GDAL_PDB) xcopy /y /r /d /f $(GDAL_PDB) $(BINDIR)
>       if exist $(GDAL_MFEST) xcopy /y /r /d /f $(GDAL_MFEST) $(BINDIR)
203c204
<       copy gdal_i.lib $(LIBDIR)
---
>       copy $(GDAL_EXP) $(LIBDIR)

src/nmake.opt
--------------------
6c6
< GDAL_HOME = "C:\warmerda\bld"
---
> GDAL_HOME = "C:\work\bld\thirdpartytools\gdal\gdal-1.3.2"
13a14,16
> #When switching to debug you must also change to the debug version of proj4
> DEBUG=1
>
21,23c24,44
< # Uncomment the first for an optimized build or the second for a debug build
< #OPTFLAGS=    /nologo /MD /EHsc /Ox
< OPTFLAGS=     /nologo /MD /EHsc /Zi /Fd$(GDAL_ROOT)\gdal.pdb
---
> !IFDEF DEBUG
> # Version number embedded in DLL name.
> VERSION =     13D
> OPTFLAGS=     /nologo /MDd /EHsc /Zi /Fd$(GDAL_ROOT)\$(GDAL_PDB)
> GDAL_MFEST= gdal$(VERSION)D.manifest
> GDAL_LIB =  gdal$(VERSION)D.lib
> GDAL_DLL =    gdal$(VERSION)D.dll
> GDAL_PDB =  gdal$(VERSION)D.pdb
> GDAL_EXP =  gdal_i$(VERSION)D.lib
>
> !ELSE
> # Version number embedded in DLL name.
> VERSION =     13
> OPTFLAGS=     /nologo /MD /EHsc /Ox
> GDAL_MFEST= gdal$(VERSION).manifest
> GDAL_LIB =  gdal$(VERSION).lib
> GDAL_DLL =    gdal$(VERSION).dll
> GDAL_PDB =  gdal$(VERSION).pdb
> GDAL_EXP =  gdal_i$(VERSION).lib
>
> !ENDIF
41c62
< VCDIR   =     D:\Software\VStudio\VC98
---
> VCDIR   =     C:\Program Files\Microsoft Visual Studio .NET 2003\VC7
45c66
< #SETARGV =    "$(VCDIR)\lib\setargv.obj"
---
> SETARGV =     "$(VCDIR)\lib\setargv.obj"
91,93c112,119
< #XERCES_DIR = c:\warmerda\supportlibs\xerces-c_2_6_0
< #XERCES_INCLUDE = -I$(XERCES_DIR)/include -I$(XERCES_DIR)/include/xercesc
< #XERCES_LIB = $(XERCES_DIR)/lib/xerces-c_2.lib
---
> XERCES_DIR =  c:\work\bld
> XERCES_INCLUDE = -I$(XERCES_DIR)\include -I$(XERCES_DIR)\include\xercesc
> !IFDEF DEBUG
> XERCES_LIB = $(XERCES_DIR)\lib\xerces-c_2D.lib
> !ELSE
> XERCES_LIB = $(XERCES_DIR)\lib\xerces-c_2.lib
> !ENDIF
>
120,125c146,151
< #MRSID_DIR =  d:\projects\mrsid
< #MRSID_INCLUDE = -I$(MRSID_DIR)\include\base -I$(MRSID_DIR)\include\support
< #             -I$(MRSID_DIR)\include\metadata \
< #             -I$(MRSID_DIR)\include\mrsid_readers \
< #             -I$(MRSID_DIR)\include\j2k_readers
< #MRSID_LIB =  $(MRSID_DIR)\lib\Release_md\lti_dsdk_dll.lib advapi32.lib user3
---
> MRSID_DIR =   C:\work\bld\THIRDPARTYTOOLS\Geo_DSDK-5.0.6.955
> MRSID_INCLUDE = -I$(MRSID_DIR)\include\base -I$(MRSID_DIR)\include\support \
>               -I$(MRSID_DIR)\include\metadata \
>               -I$(MRSID_DIR)\include\mrsid_readers \
>               -I$(MRSID_DIR)\include\j2k_readers
> MRSID_LIB =   $(MRSID_DIR)\lib\Release_md\lti_dsdk_dll.lib advapi32.lib user32
158a185
>
162,164c189,191
< #PROJ_FLAGS = -DPROJ_STATIC
< #PROJ_INCLUDE = -Id:\projects\proj.4\src
< #PROJ_LIBRARY = d:\projects\proj.4\src\proj_i.lib
---
> PROJ_HOME = c:\work\bld\
> PROJ_INCLUDE = -I$(PROJ_HOME)\include\proj4
> PROJ_LIB = C:\work\bld\lib\proj4.lib
176,182c203,209
< #SDE_ENABLED = YES
< #SDE_VERSION=90
< #SDE_PLUGIN = YES
< #SDE_SDK = C:\arcgis\arcsde
< #SDE_INC = $(SDE_SDK)\include
< #SDE_LIB = $(SDE_SDK)\lib\pe$(SDE_VERSION).lib \
< #          $(SDE_SDK)\lib\sde$(SDE_VERSION).lib $(SDE_SDK)\lib\sg$(SDE_VERSI
---
> SDE_ENABLED = YES
> SDE_VERSION=91
> SDE_PLUGIN = YES
> SDE_SDK = C:\work\arcgis\arcsde
> SDE_INC = $(SDE_SDK)\include
> SDE_LIB = $(SDE_SDK)\lib\pe$(SDE_VERSION).lib \
>           $(SDE_SDK)\lib\sde$(SDE_VERSION).lib $(SDE_SDK)\lib\sg$(SDE_VERSIO
202,203d228
< GDAL_DLL =    gdal$(VERSION).dll
<
205c230
<               -I$(GDAL_ROOT)\alg
---
>               -I$(GDAL_ROOT)\alg $(PROJ_INCLUDE)
218c243
< GDALLIB       =    $(GDAL_ROOT)/gdal_i.lib
---
> GDALLIB       =    $(GDAL_ROOT)/$(GDAL_EXP)
220c245
< GDALLIB       =    $(GDAL_ROOT)/gdal.lib
---
> GDALLIB       =    $(GDAL_ROOT)/$(GDAL_LIB)

src/apps/Makefile.vc
----------------------------
6c6
< LIBS  =       $(GDAL_ROOT)\gdal_i.lib
---
> LIBS  =       $(GDAL_ROOT)\$(GDAL_EXP)

src/ogr/Makefile
------------------------
33,34c33,34
< LINKARGS =    ..\gdal_i.lib $(LIBS)
< DEPLIBS       =       ..\gdal_i.lib
---
> LINKARGS =    $(GDAL_ROOT)\$(GDAL_EXP) $(LIBS)
> DEPLIBS       =       $(GDAL_ROOT)\$(GDAL_EXP)

Change History (4)

comment:1 by Mateusz Łoskot, 14 years ago

Cc: Mateusz Łoskot added
Description: modified (diff)

It's an interesting idea I think. Any feedback?

comment:2 by warmerdam, 14 years ago

Component: defaultConfigBuild
Priority: highnormal

The patch is quite out of date now, but if the idea was popular enough it could be applied manually. I personally always avoid /MDd as it is disruptive to mix with other libraries and I would still want it to be easy for me to avoid this aspect in which case the renaming has little purpose.

I have no intention of pursuing this myself. If you wish to, I think it would be prudent to request feedback on gdal-dev before making the change.

comment:3 by Jukka Rahkonen, 9 years ago

Ticket is about Win32 makefile updates for building GDAL version 1.3.2.

I suggest to close the ticket because probably it is more or less outdated by now.

comment:4 by Jukka Rahkonen, 9 years ago

Resolution: wontfix
Status: newclosed
Note: See TracTickets for help on using tickets.