Re: add support for building ctlib on Windows
Frediano Ziglio <[email protected]>
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Message-ID | <CAHt6W4epOdP49KiBA8Vp5twrym-H5N=ibbLgEFirZ9k-JzDZ8Q@mail.gmail.com> |
2013/12/10 <[email protected]>: > NMakefile for Windows currently doesn't allow building ctlib. Here is a patch for that. This is useful for users of DBD-Sybase (the CPAN module) which has a dependency on ctlib. > > This doesn't affect any of the existing targets (except for "clean"), so is backwards-compatible. > Thanks, > Sam > > --- c:\temp\p4v\PRGDWM355382_qaperforce_1666\depot\QA\Toolbox\main.br\third_party_src\FreeTDS\src\Nmakefile#1 2013-12-10 16:42:31.000000000 +-0100 > +++ c:\p4_ws\0toolbox\main.br\third_party_src\FreeTDS\src\Nmakefile 2013-12-10 18:22:24.000000000 +-0100 > @@ -21,17 +21,19 @@ > !ENDIF > MKDIR = MD > MV = move /Y > DBLIB_DIR = src\dblib > +CTLIB_DIR = src\ctlib > REPLACEMENTS_DIR = src\replacements > TDS_DIR = src\tds > APPS_DIR = src\apps > DBLIB_OUT = $(DBLIB_DIR)\$(PLATFORM)\$(CONFIGURATION) > +CTLIB_OUT = $(CTLIB_DIR)\$(PLATFORM)\$(CONFIGURATION) > REPLACEMENTS_OUT = $(REPLACEMENTS_DIR)\$(PLATFORM)\$(CONFIGURATION) > TDS_OUT = $(TDS_DIR)\$(PLATFORM)\$(CONFIGURATION) > APPS_OUT = $(APPS_DIR)\$(PLATFORM)\$(CONFIGURATION) > DBLIB_SRC = $(DBLIB_DIR)\bcp.c \ > $(DBLIB_DIR)\dblib.c \ > @@ -32,18 +34,28 @@ > REPLACEMENTS_OUT = $(REPLACEMENTS_DIR)\$(PLATFORM)\$(CONFIGURATION) > TDS_OUT = $(TDS_DIR)\$(PLATFORM)\$(CONFIGURATION) > APPS_OUT = $(APPS_DIR)\$(PLATFORM)\$(CONFIGURATION) > DBLIB_SRC = $(DBLIB_DIR)\bcp.c \ > $(DBLIB_DIR)\dblib.c \ > DBLIB_OBJ = $(DBLIB_OUT)\bcp.obj \ > $(DBLIB_OUT)\dblib.obj \ > $(DBLIB_OUT)\dbopen.obj \ > $(DBLIB_OUT)\dbutil.obj \ > $(DBLIB_OUT)\rpc.obj \ > $(DBLIB_OUT)\xact.obj > + > +CTLIB_SRC = $(CTLIB_DIR)\blk.c \ > + $(CTLIB_DIR)\cs.c \ > + $(CTLIB_DIR)\ct.c \ > + $(CTLIB_DIR)\ctutil.c > + > +CTLIB_OBJ = $(CTLIB_OUT)\blk.obj \ > + $(CTLIB_OUT)\cs.obj \ > + $(CTLIB_OUT)\ct.obj \ > + $(CTLIB_OUT)\ctutil.obj > REPLACEMENTS_SRC = $(REPLACEMENTS_DIR)\asprintf.c \ > $(REPLACEMENTS_DIR)\basename.c \ > $(REPLACEMENTS_DIR)\fakepoll.c \ > $(REPLACEMENTS_DIR)\gettimeofday.c \ > $(REPLACEMENTS_DIR)\getopt.c \ > @@ -49,18 +61,19 @@ > REPLACEMENTS_SRC = $(REPLACEMENTS_DIR)\asprintf.c \ > $(REPLACEMENTS_DIR)\basename.c \ > $(REPLACEMENTS_DIR)\fakepoll.c \ > $(REPLACEMENTS_DIR)\gettimeofday.c \ > $(REPLACEMENTS_DIR)\getopt.c \ > $(APPS_OUT)\datacopy.exe \ > $(APPS_OUT)\defncopy.exe \ > $(APPS_OUT)\freebcp.exe \ > $(APPS_OUT)\tsql.exe > > db-lib: $(DBLIB_OUT)\db-lib.lib > +libct: $(CTLIB_OUT)\libct.lib > apps: $(DBLIB_OUT)\db-lib.lib $(APPS_EXE) > tsql: $(APPS_OUT)\tsql.exe > bsqldb: $(APPS_OUT)\bsqldb.exe > help: > @echo targets: db-lib, apps, tsql, bsqldb > @@ -155,29 +168,30 @@ > apps: $(DBLIB_OUT)\db-lib.lib $(APPS_EXE) > tsql: $(APPS_OUT)\tsql.exe > bsqldb: $(APPS_OUT)\bsqldb.exe > help: > @echo targets: db-lib, apps, tsql, bsqldb > $(MAKE) -fNmakefile -nologo apps PLATFORM=win64 CONFIGURATION=release > clean: > @if "" equ "$(PLATFORM)" PLATFORM not defined, see comments in Nmakefile >&2 && exit 1 > @if "" equ "$(CONFIGURATION)" CONFIGURATION not defined, see comments in Nmakefile >&2 && exit 1 > if exist $(DBLIB_OUT) del /q $(DBLIB_OUT)\*.obj $(DBLIB_OUT)\*.lib > + if exist $(CTLIB_OUT) del /q $(CTLIB_OUT)\*.obj $(CTLIB_OUT)\*.lib > if exist $(REPLACEMENTS_OUT) del /q $(REPLACEMENTS_OUT)\*.obj $(REPLACEMENTS_OUT)\*.lib > if exist $(TDS_OUT) del /q $(TDS_OUT)\*.obj $(TDS_OUT)\*.lib > if exist $(APPS_OUT) del /q $(APPS_OUT)\*.obj $(APPS_OUT)\*.exe > clean-app: > @if "" equ "$(PLATFORM)" PLATFORM not defined, see comments in Nmakefile >&2 && exit 1 > @if "" equ "$(CONFIGURATION)" CONFIGURATION not defined, see comments in Nmakefile >&2 && exit 1 > if exist $(APPS_OUT) del /q $(APPS_OUT)\*.obj $(APPS_OUT)\*.exe > # Create output directories > -$(DBLIB_OUT) $(REPLACEMENTS_OUT) $(TDS_OUT) $(APPS_OUT): > +$(DBLIB_OUT) $(CTLIB_OUT) $(REPLACEMENTS_OUT) $(TDS_OUT) $(APPS_OUT): > @echo creating output directory for configuration: "$(PLATFORM)|$(CONFIGURATION)" > @if "" equ "$(PLATFORM)" PLATFORM not defined, see comments in Nmakefile >&2 && exit 1 > @if "" equ "$(CONFIGURATION)" CONFIGURATION not defined, see comments in Nmakefile >&2 && exit 1 > $(MKDIR) $@ > # > @@ -218,18 +232,23 @@ > @echo creating output directory for configuration: "$(PLATFORM)|$(CONFIGURATION)" > @if "" equ "$(PLATFORM)" PLATFORM not defined, see comments in Nmakefile >&2 && exit 1 > @if "" equ "$(CONFIGURATION)" CONFIGURATION not defined, see comments in Nmakefile >&2 && exit 1 > $(MKDIR) $@ > # > $(MV) [email protected] $@ > !ENDIF > GENERATED_FILES = include\tdsver.h src\tds\tds_types.h \ > src\tds\tds_willconvert.h src\tds\encodings.h src\tds\num_limits.h > +$(CTLIB_OUT)\libct.lib: $(GENERATED_FILES) $(CTLIB_OUT) $(CTLIB_OBJ) $(REPLACEMENTS_OUT)\replacements.lib $(TDS_OUT)\tds.lib > + @echo building $@ >&2 > + lib -nologo -out:"$@" $(CTLIB_OBJ) \ > + $(REPLACEMENTS_OUT)\replacements.lib \ > + $(TDS_OUT)\tds.lib > $(DBLIB_OUT)\db-lib.lib: $(GENERATED_FILES) $(DBLIB_OUT) $(DBLIB_OBJ) $(REPLACEMENTS_OUT)\replacements.lib $(TDS_OUT)\tds.lib > @echo building $@ >&2 > lib -nologo -out:"$@" $(DBLIB_OBJ) \ > $(REPLACEMENTS_OUT)\replacements.lib \ > $(TDS_OUT)\tds.lib > $(REPLACEMENTS_OUT)\replacements.lib: $(REPLACEMENTS_OUT) $(REPLACEMENTS_OBJ) > @@ -265,18 +284,39 @@ > $(DBLIB_OUT)\db-lib.lib: $(GENERATED_FILES) $(DBLIB_OUT) $(DBLIB_OBJ) $(REPLACEMENTS_OUT)\replacements.lib $(TDS_OUT)\tds.lib > @echo building $@ >&2 > lib -nologo -out:"$@" $(DBLIB_OBJ) \ > $(REPLACEMENTS_OUT)\replacements.lib \ > $(TDS_OUT)\tds.lib > $(REPLACEMENTS_OUT)\replacements.lib: $(REPLACEMENTS_OUT) $(REPLACEMENTS_OBJ) > -Fd"$(DBLIB_OUT)\vc80.pdb" \ > $< > {$(DBLIB_DIR)}.c{$(DBLIB_DIR)\x64\release}.obj:: > $(CC64) -c $(REL) -Fo"$(DBLIB_OUT)\\" \ > -Fd"$(DBLIB_OUT)\vc80.pdb" \ > + $< > + > +# ctlib > +{$(CTLIB_DIR)\}.c{$(CTLIB_DIR)\win32\debug}.obj:: > + $(CC32) -c $(DBG) -Fo"$(CTLIB_OUT)\\" \ > + -Fd"$(CTLIB_OUT)\vc80.pdb" \ > + $< > + > +{$(CTLIB_DIR)\}.c{$(CTLIB_DIR)\win32\release}.obj:: > + $(CC32) -c $(REL) -Fo"$(CTLIB_OUT)\\" \ > + -Fd"$(CTLIB_OUT)\vc80.pdb" \ > + $< > + > +{$(CTLIB_DIR)\}.c{$(CTLIB_DIR)\x64\debug}.obj:: > + $(CC64) -c $(DBG) -Fo"$(CTLIB_OUT)\\" \ > + -Fd"$(CTLIB_OUT)\vc80.pdb" \ > + $< > + > +{$(CTLIB_DIR)\}.c{$(CTLIB_DIR)\x64\release}.obj:: > + $(CC64) -c $(REL) -Fo"$(CTLIB_OUT)\\" \ > + -Fd"$(CTLIB_OUT)\vc80.pdb" \ > $< > # > # replacements > # > {$(REPLACEMENTS_DIR)}.c{$(REPLACEMENTS_DIR)\win32\debug}.obj:: > On git HEAD we got support for cmake Frediano