########################################################################## # # # MAKEFILE FOR MYODBC 3.51 DRIVER # # WINDOWS - RELEASE/SHARE # # (C) Copyright MySQL AB 1995-2002 # # # ########################################################################## !MESSAGE ***************************************************************** !MESSAGE * MySQL ODBC 3.51 Driver, Release Build * !MESSAGE * (C) Copyright MySQL AB, 1995-2002 * !MESSAGE * * !MESSAGE * AUTHORS: Monty (monty@mysql.com), Venu (venu@mysql.com) * !MESSAGE ***************************************************************** !MESSAGE * * !MESSAGE ***************************************************************** !MESSAGE * This program is free software; you can redistribute it and/or * !MESSAGE * modify it under the terms of the GNU General Public License * !MESSAGE * as published by the Free Software Foundation; either version * !MESSAGE * 2 of the License, or (at your option) any later version. * !MESSAGE ***************************************************************** # ----------------------------- # CONFIGURE DEFINATIONS # ----------------------------- # specify MySQL include directory MYSQL_INCLUDE_PATH = c:\mysql\include # specify the MySQL client libraries path (release version) MYSQL_LIB_PATH = c:\mysql\lib\opt # specify driver output file name MYODBC3_OUTFILE = myodbc3 # specify the output directory OUTDIR = .\Release # ----------------------------- # COMPILER FLAGS # ----------------------------- # compiler name CC = cl.exe # linker name LINK = link.exe # resource compiler RSC = rc.exe # specify the include path INCDIR = -I. -I$(MYSQL_INCLUDE_PATH) # optimization levels OPTLEVEL = -O2 -G6 # warning level WARNLEVEL = -W3 # general compiler flags CGENERAL = -nologo -DENGLISH -DMYODBC_EXPORTS -D_USERDLL -DDONT_DEFINE_VOID # multi thread related flags MTHREAD = -DMT #output path listing OUTLIST = -Fo$(OUTDIR)\ -Fd$(OUTDIR)\ # (non)debug flags SHAREFLAGS = -DDBUG_OFF -D_DBUG_OFF -DNDEBUG -D_NDEBUG # all compiler flags in one place 'CFLAGS' CFLAGS = $(CGENERAL) $(WARNLEVEL) $(OPTLEVEL) \ $(MTHREAD) $(INCDIR) $(SHAREFLAGS) $(OUTLIST) # ----------------------------- # DRIVER DEFINATIONS # ----------------------------- DRIVER_DLL = $(OUTDIR)\$(MYODBC3_OUTFILE).dll DRIVER_LIB = $(OUTDIR)\$(MYODBC3_OUTFILE).lib MYODBC3_RES = $(OUTDIR)\myodbc3.res MYODBC3_RC = myodbc3.rc MYODBC3_DEF = myodbc3.def # ----------------------------- # DRIVER SOURCE FILES # ----------------------------- MYODBC3_SRCS = catalog.c \ connect.c \ cursor.c \ dll.c \ error.c \ execute.c \ handle.c \ info.c \ misc.c \ myodbc3.c \ options.c \ prepare.c \ results.c \ setup.c \ transact.c \ utility.c # -------------------------------------------------- # DRIVER INTERMEDIATE FILES - FOR DEPENDENCY PURPOSE # -------------------------------------------------- MYODBC3_OBJS = $(OUTDIR)/catalog.obj \ $(OUTDIR)/connect.obj \ $(OUTDIR)/cursor.obj \ $(OUTDIR)/dll.obj \ $(OUTDIR)/error.obj \ $(OUTDIR)/execute.obj \ $(OUTDIR)/handle.obj \ $(OUTDIR)/info.obj \ $(OUTDIR)/misc.obj \ $(OUTDIR)/myodbc3.obj \ $(OUTDIR)/options.obj \ $(OUTDIR)/prepare.obj \ $(OUTDIR)/results.obj \ $(OUTDIR)/setup.obj \ $(OUTDIR)/transact.obj \ $(OUTDIR)/utility.obj \ $(OUTDIR)/myodbc3.res # ------------------------------------ # BASED ON OS, SPECIFY THE TARGET PATH # ------------------------------------ !IF "$(OS)" == "Windows_NT" SYSDIR = $(WINDIR)\system32 CFLAGS = $(CFLAGS) -D_WIN32 -DWIN32 -D_WINDOWS -D__WIN__ NULL = !ELSE SYSDIR = $(WINDIR)\system CFLAGS = $(CFLAGS) -D_WINDOWS -D__WIN__ NULL = nul !ENDIF # ----------------------------- # LINKER FLAGS # ----------------------------- # mysql client libraries MYSQL_CLIENT_LIBS = mysqlclient.lib zlib.lib # system libraries SYSLIBS = kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\ odbc32.lib odbccp32.lib wsock32.lib ctl3d32.lib # linker flags LDFLAGS = $(SYSLIBS) /NODEFAULTLIB:LIBC \ /DLL /DEF:$(MYODBC3_DEF) $(MYODBC3_OBJS) \ $(MYSQL_CLIENT_LIBS) /implib:$(DRIVER_LIB) \ /libpath:$(MYSQL_LIB_PATH) /out:$(DRIVER_DLL) # --------------------------------------------------- # RESOURCE COMPILATION # # ONE MUST SUPPLY THE RESOURCE FILE LANGUAGE USING /l # IN HEX FORMAXT, 0x409 for english # --------------------------------------------------- RES_LANGUAGE = 0x409 MYODBC3_RES_PROJ = /l $(RES_LANGUAGE) /fo $(MYODBC3_RES) $(INCDIR) $(MYODBC3_RC) # ----------------------------- # BUILD TARGET SPECIFICATION # ----------------------------- all : build build : $(OUTDIR) $(DRIVER_DLL) default : build buildall: build copy install : buildall #------------------------------ # DRIVER DLL BUILD SPECIFICATION #------------------------------ $(DRIVER_DLL): $(MYODBC3_OBJS) $(RES) $(MYODBC3_RES) $(MYODBC3_SRCS) $(LINK) /RELEASE $(LDFLAGS) .c{$(OUTDIR)}.obj: $(CC) -c $(CFLAGS) $< -o $*.obj #------------------------------ # RESOURCE COMPILATION #------------------------------ .rc{$(OUTDIR)}.res: $(RSC) $(MYODBC3_RES_PROJ) #------------------------------ # CREATE OUTPUT DIR, IF IT DOES NOT EXISTS #------------------------------ $(OUTDIR): if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" # ----------------------------- # INSTALL SPECIFICATION # ----------------------------- copy: copy $(DRIVER_DLL) $(SYSDIR)\myodbc3.dll copy $(DRIVER_LIB) $(SYSDIR)\myodbc3.lib # ----------------------------- # CLEAN SPECIFICATION # ----------------------------- clean: -@erase $(DRIVER_DLL) -@erase $(DRIVER_LIB) -@erase $(OUTDIR)\*.exp -@erase $(MYODBC3_RES) -@erase $(MYODBC3_OUTFILE).pdb -@erase $(MYODBC3_OUTFILE).ilk -@erase $(OUTDIR)\*.obj -@erase $(OUTDIR)\*.idb -@erase *.idb -@erase *.pdb