# (C) COPYRIGHT International Business Machines Corp. 1995, 2000 # All Rights Reserved. # # US Government Users Restricted Rights - Use, duplication or # disclosure restricted by GSA ADP Schedule Contract with IBM Corp. # makefile for DB2 Universal Database # CLI sample programs -- Windows 32-bit operating systems # Enter one of the following commands # # nmake <app_name> - Builds the program designated by <app_name> # # nmake all - Builds the all the supplied sample programs # nmake udfspserver - Builds the examples that implement # stored procedures and UDFs (on the server) # nmake udfspclient - Builds the examples that call stored # procedures and UDFs ( they can run remotely ) # nmake otherclient - Builds the examples that will run successfully # on a client platform ( others than udfspclient ) # nmake allclient - Builds programs in udfspclient and otherclient # categories # # nmake clean - Erases intermediate files # nmake cleanall - Erases all files produced in the build process, # except the original source files # The makefile contains the following sections: # 1 -- COMPILERS + VARIABLES # 2 -- MAKE CATEGORIES # 3 -- COMMANDS TO MAKE INDIVIDUAL SAMPLES ################################################################################## # 1 -- COMPILERS + VARIABLES ################################################################################## # Note: The default compiler options are set for the Microsoft Visual C++ # compiler. If you use the IBM VisualAge C++ compiler, remove the # "COMPILER=MS" below and uncomment "COMPILER=IBM" that follows. # Set Compiler COMPILER=MS #COMPILER=IBM !IF "$(COMPILER)" == "MS" # Microsoft Visual C++ compiler CC=cl LINK=link # Compile and link options. CFLAGS=-Z7 -Od -c -W2 -D_X86_=1 -DWIN32 -I:"$(DB2PATH)\include" LFLAGS=-debug:full -debugtype:cv LFLAGSSRV=-debug:full -debugtype:cv -dll !ENDIF !IF "$(COMPILER)" == "IBM" # IBM VisualAge C++ compiler CC=icc LINK=ilink CFLAGS=-c -Ti -W1 CFLAGSSRV=-c+ -Ti -Ge- -Gm+ -W1 LFLAGS=/MAP /DEBUG /ST:96000 /PM:VIO LFLAGSSRV=/MAP /DEBUG /ST:96000 /PM:VIO /DLL !ENDIF LIBS="$(DB2PATH)\lib\db2cli.lib" LIBSAPI="$(DB2PATH)\lib\db2api.lib" # To connect to a remote SAMPLE database cataloged on the client machine # with another name, update the DB variable. DB=sample # Set UID and PWD if neccesary UID= PWD= COPY=copy ERASE=del ############################################################################# # 2 -- MAKE CATEGORIES # 2a - nmake all(= allclient + udfspserver) # 2b - nmake udfspserver # 2c - nmake udfspclient # 2d - nmake otherclient # 2e - nmake allclient(= udfspclient + otherclient) # # 2f - nmake clean # 2g - nmake cleanall ############################################################################# #**************************************************************************** # 2a - nmake all #**************************************************************************** all : \ allclient \ udfspserver #**************************************************************************** # 2b - nmake udfspserver #**************************************************************************** udfspserver : \ spserver \ udfsrv #**************************************************************************** # 2c - nmake udfspclient #**************************************************************************** udfspclient : \ spclient \ udfcli #**************************************************************************** # 2d - nmake otherclient #**************************************************************************** otherclient : \ aphndls apinfo apsqlca \ dbconn dbinfo dbmconn dbmuse dbnative dbuse dbusemx \ dtinfo dtlob dtudt \ ilinfo \ ininfo \ tbconstr tbdefine tbinfo tbmod tbread #**************************************************************************** # 2e - nmake allclient(= udfspclient + otherclient) #**************************************************************************** allclient : \ udfspclient \ otherclient #**************************************************************************** # 2f - nmake clean #**************************************************************************** clean : \ cleangen \ cleanemb \ cleanexp cleangen : $(ERASE) *.obj *.ilk *.pdb *.map *.lib *.txt *.dll *.bmp *.gif *.xwd cleanemb : $(ERASE) dbusemx.c cleanexp : $(ERASE) udfsrv.exp $(ERASE) spserver.exp #**************************************************************************** # 2g - nmake cleanall #**************************************************************************** cleanall : \ clean $(ERASE) *.bnd *.exe ############################################################################# # 3 -- COMMANDS TO MAKE INDIVIDUAL SAMPLES # 3a - utilities # 3b - non embedded SQL, non client/server samples # 3c - embedded SQL, non client/server samples # 3d - client/server samples (mixed) ############################################################################# #**************************************************************************** # 3a - utilities #**************************************************************************** utilcli.obj : $(CC) utilcli.c $(CFLAGS) utilapi.obj : $(CC) utilapi.c $(CFLAGS) #**************************************************************************** # 3b - non embedded SQL, non client/server samples #**************************************************************************** aphndls.obj : aphndls.c $(CC) $(CFLAGS) aphndls.c aphndls : aphndls.obj utilcli.obj $(LINK) $(LFLAGS) -out:aphndls.exe aphndls.obj utilcli.obj $(LIBS) apinfo.obj : apinfo.c $(CC) $(CFLAGS) apinfo.c apinfo : apinfo.obj utilcli.obj $(LINK) $(LFLAGS) -out:apinfo.exe apinfo.obj utilcli.obj $(LIBS) apsqlca.obj : apsqlca.c $(CC) $(CFLAGS) apsqlca.c apsqlca : apsqlca.obj utilcli.obj $(LINK) $(LFLAGS) -out:apsqlca.exe apsqlca.obj utilcli.obj $(LIBS) dbconn.obj : dbconn.c $(CC) $(CFLAGS) dbconn.c dbconn : dbconn.obj utilcli.obj $(LINK) $(LFLAGS) -out:dbconn.exe dbconn.obj utilcli.obj $(LIBS) dbinfo.obj : dbinfo.c $(CC) $(CFLAGS) dbinfo.c dbinfo : dbinfo.obj utilcli.obj $(LINK) $(LFLAGS) -out:dbinfo.exe dbinfo.obj utilcli.obj $(LIBS) dbmconn.obj : dbmconn.c $(CC) $(CFLAGS) dbmconn.c dbmconn : dbmconn.obj utilcli.obj utilapi.obj $(LINK) $(LFLAGS) -out:dbmconn.exe dbmconn.obj utilcli.obj utilapi.obj \ $(LIBS) $(LIBSAPI) dbmuse.obj : dbmuse.c $(CC) $(CFLAGS) dbmuse.c dbmuse : dbmuse.obj utilcli.obj utilapi.obj $(LINK) $(LFLAGS) -out:dbmuse.exe dbmuse.obj utilcli.obj utilapi.obj \ $(LIBS) $(LIBSAPI) dbnative.obj : dbnative.c $(CC) $(CFLAGS) dbnative.c dbnative : dbnative.obj utilcli.obj $(LINK) $(LFLAGS) -out:dbnative.exe dbnative.obj utilcli.obj $(LIBS) dbuse.obj : dbuse.c $(CC) $(CFLAGS) dbuse.c dbuse : dbuse.obj utilcli.obj $(LINK) $(LFLAGS) -out:dbuse.exe dbuse.obj utilcli.obj $(LIBS) dtinfo.obj : dtinfo.c $(CC) $(CFLAGS) dtinfo.c dtinfo : dtinfo.obj utilcli.obj $(LINK) $(LFLAGS) -out:dtinfo.exe dtinfo.obj utilcli.obj $(LIBS) dtlob.obj : dtlob.c $(CC) $(CFLAGS) dtlob.c dtlob : dtlob.obj utilcli.obj $(LINK) $(LFLAGS) -out:dtlob.exe dtlob.obj utilcli.obj $(LIBS) dtudt.obj : dtudt.c $(CC) $(CFLAGS) dtudt.c dtudt : dtudt.obj utilcli.obj $(LINK) $(LFLAGS) -out:dtudt.exe dtudt.obj utilcli.obj $(LIBS) ilinfo.obj : ilinfo.c $(CC) $(CFLAGS) ilinfo.c ilinfo : ilinfo.obj utilcli.obj $(LINK) $(LFLAGS) -out:ilinfo.exe ilinfo.obj utilcli.obj $(LIBS) ininfo.obj : ininfo.c $(CC) $(CFLAGS) ininfo.c ininfo : ininfo.obj utilcli.obj $(LINK) $(LFLAGS) -out:ininfo.exe ininfo.obj utilcli.obj $(LIBS) spcall.obj : spcall.c $(CC) $(CFLAGS) spcall.c spcall : spcall.obj utilcli.obj $(LINK) $(LFLAGS) -out:spcall.exe spcall.obj utilcli.obj $(LIBS) tbconstr.obj : tbconstr.c $(CC) $(CFLAGS) tbconstr.c tbconstr : tbconstr.obj utilcli.obj $(LINK) $(LFLAGS) -out:tbconstr.exe tbconstr.obj utilcli.obj $(LIBS) tbdefine.obj : tbdefine.c $(CC) $(CFLAGS) tbdefine.c tbdefine : tbdefine.obj utilcli.obj $(LINK) $(LFLAGS) -out:tbdefine.exe tbdefine.obj utilcli.obj $(LIBS) tbinfo.obj : tbinfo.c $(CC) $(CFLAGS) tbinfo.c tbinfo : tbinfo.obj utilcli.obj $(LINK) $(LFLAGS) -out:tbinfo.exe tbinfo.obj utilcli.obj $(LIBS) tbread.obj : tbread.c $(CC) $(CFLAGS) tbread.c tbread : tbread.obj utilcli.obj $(LINK) $(LFLAGS) -out:tbread.exe tbread.obj utilcli.obj $(LIBS) tbmod.obj : tbmod.c $(CC) $(CFLAGS) tbmod.c tbmod : tbmod.obj utilcli.obj $(LINK) $(LFLAGS) -out:tbmod.exe tbmod.obj utilcli.obj $(LIBS) #**************************************************************************** # 3c - embedded SQL non client/server samples #**************************************************************************** dbusemx.c : dbusemx.sqc embprep dbusemx $(DB) $(UID) $(PWD) dbusemx.obj : dbusemx.c $(CC) $(CFLAGS) dbusemx.c dbusemx : dbusemx.obj utilcli.obj $(LINK) $(LFLAGS) -out:dbusemx.exe dbusemx.obj utilcli.obj \ $(LIBS) $(LIBSAPI) #**************************************************************************** # 3d - client/server samples # Note: once you create the new stp, drop what you don't need # from this section #**************************************************************************** #--------------------spclient/spserver--------------------------------------# spclient.obj : spclient.c $(CC) $(CFLAGS) spclient.c spclient : spclient.obj utilcli.obj $(LINK) $(LFLAGS) -out:spclient.exe spclient.obj utilcli.obj $(LIBS) spserver : !IF "$(COMPILER)" == "MS" $(CC) $(CFLAGS) utilcli.c $(CC) $(CFLAGS) spserver.c $(LINK) $(LFLAGSSRV) -out:spserver.dll \ spserver.obj utilcli.obj -def:spserver.def $(LIBS) !ELSE $(ERASE) utilcli.obj $(CC) $(CFLAGSSRV) utilcli.c $(CC) $(CFLAGSSRV) spserver.c ilib /GI spserverva.def $(LINK) $(LFLAGSSRV) -out:spserver.dll \ spserver.obj utilcli.obj spserver.exp $(LIBS) $(ERASE) utilcli.obj !ENDIF $(COPY) spserver.dll "$(DB2PATH)\function" #-------------------- udfcli / udfsrv --------------------------------------# udfcli.obj : udfcli.c $(CC) $(CFLAGS) udfcli.c udfcli : udfcli.obj utilcli.obj $(LINK) $(LFLAGS) -out:udfcli.exe udfcli.obj utilcli.obj $(LIBS) udfsrv : !IF "$(COMPILER)" == "MS" $(CC) $(CFLAGS) udfsrv.c $(LINK) $(LFLAGSSRV) -out:udfsrv.dll udfsrv.obj -def:udfsrv.def $(LIBSAPI) !ELSE $(CC) $(CFLAGSSRV) udfsrv.c ilib /GI udfsrvva.def $(LINK) $(LFLAGSSRV) -out:udfsrv.dll udfsrv.obj udfsrv.exp $(LIBSAPI) !ENDIF $(COPY) udfsrv.dll "$(DB2PATH)\function"