# Makefile.mak - makefile for MS NMAKE
+# $Id: makefile.mak,v 1.5 1999-06-04 10:04:28 heikki Exp $
#
# Programmed by
# HL: Heikki Levanto, Index Data
#
-# History
-# 18-05-99 HL Stole this from YazX, cleaning up
+# Log at the end of the file
#
# Missing
-# - get it to work
-# - yaz dll
-# - client
-# - server
-# - ztest
+# - Move MS-C's whatnots into win direcotry
+# - rename to makefile (.nothing)
#
# Envoronment problems
# - You need to have the proper path and environment for VC set
############### Parameters
###########################################################
-DEBUG=1 # 0 for release, 1 for debug
+DEBUG=0 # 0 for release, 1 for debug
default: all
-all: dirs dll client
+all: dirs dll client server ztest
###########################################################
UNIXDIR=$(ROOTDIR)\unix # corresponding unix things
SRCDIR=$(ROOTDIR) # for the case we move them under src
-YAZASNDIR=$(SRCDIR)\ASN
-YAZCOMSTACKDIR=$(SRCDIR)\COMSTACK
-YAZODRDIR=$(SRCDIR)\ODR
-YAZUTILDIR=$(SRCDIR)\UTIL
-YAZRETDIR=$(SRCDIR)\RETRIEVAL
+ASNDIR=$(SRCDIR)\ASN
+COMSTACKDIR=$(SRCDIR)\COMSTACK
+ODRDIR=$(SRCDIR)\ODR
+UTILDIR=$(SRCDIR)\UTIL
+RETDIR=$(SRCDIR)\RETRIEVAL
-YAZCLIENTDIR=$(SRCDIR)\CLIENT
+CLIENTDIR=$(SRCDIR)\CLIENT
+SERVERDIR=$(SRCDIR)\SERVER
+ZTESTDIR=$(SRCDIR)\ZTEST
###########################################################
############### Targets - what to make
DLL=$(BINDIR)\Yaz.dll
IMPLIB=$(BINDIR)\Yaz.lib
-BSCFILE=$(LIBDIR)\Yaz.bsc
CLIENT=$(BINDIR)\client.exe
+SERVER=$(BINDIR)\server.lib
+ZTEST=$(BINDIR)\ztest.exe
# shortcut names defined here
-dll : $(DLL) $(BSCFILE)
+dll : $(DLL)
client: $(CLIENT)
+server: $(SERVER)
+ztest: $(ZTEST)
+bsc: $(YAZ_BSCFILE) $(ZTEST_BSCFILE)
###########################################################
############### Compiler and linker options
/Fo"$(OBJDIR)\\" \
/Fd"$(OBJDIR)\\"
-# /Fp"$(OBJDIR)\YazX3950.pch" \
-# /D "_WIN32_DCOM" \
-
COMMON_C_INCLUDES= \
/I"$(SRCDIR)\include"
-# /I"$(ROOTDIR)" \
-# /I"$(OBJDIR)"
-
DEBUG_C_OPTIONS= \
/D "_DEBUG" \
- /MD /Od /YX
-
+ /MDd /Od /YX /Zi /Gm
+
RELEASE_C_OPTIONS= \
/D "NDEBUG" \
- /MDd /O2 /Gm /ZI
-
+ /MD /O2
+
+# /W3 = warning level
+# /GX = Enable exception handling
+# /FD = Generate file dependencies (what ever they are)
+# /c = compile without linking
+# /FR = Generate browse info (.sbr file that gets combined into .bsc)
+# /Fo = object file name (or at least path)
+# /Fd = debug database name (or path)
+# /MD = Runtime library: Multithread DLL
+# /MDd = Runtime library: Multithread DLL (debug)
+# /Od = Disable optimising (debug)
+# /O2 = Optimize for speed
+# /YX = Automatic use of precomipled headers
+# /Gm = Minimal rebuild (some cpp class stuff)
+# /Zi = Program database for debuggers
+# /ZI = Pgm database with special "edit&continue" stuff - not available in C5
### The RC compiler (resource files)
RSC=rc.exe
### Linker options
LINK=link.exe
-DLL_LINK_LIBS= kernel32.lib user32.lib gdi32.lib winspool.lib \
+LINK_LIBS= 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
-
-
-#odbccp32.lib yaz.lib /nologo /subsystem:console /incremental:no /pdb:".\Debug/client.pdb" /debug /machine:I386 /out:".\Debug/client.exe" /libpath:"..\debug"
+ wsock32.lib advapi32.lib
COMMON_LNK_OPTIONS= /nologo \
/subsystem:windows \
- /incremental:no \
- /machine:i386
-
-DEBUG_LNK_OPTIONS= /debug \
- /incremental:no
-
-RELEASE_LNK_OPTIONS= /pdb:none
-
-DLL_LINK_OPTIONS= /dll
-CLIENT_LINK_OPTIONS = /subsystem:console
+ /machine:i386 \
+ /incremental:no
+DEBUG_LNK_OPTIONS= /debug
-### BSC compiler options
-
-BSCMAKE=bscmake.exe
+RELEASE_LNK_OPTIONS= /pdb:none
+DLL_LINK_OPTIONS= /dll
+CLIENT_LINK_OPTIONS = /subsystem:console
+SERVER_LINK_OPTIONS = -lib
+ZTEST_LINK_OPTIONS = /subsystem:console
-COMMON_BSC_OPTIONS= /nologo /o "$(BSCFILE)" /n
-DEBUG_BSC_OPTIONS=
-RELEASE_BSC_OPTIONS=
# Final opt variables
!if $(DEBUG)
MTLOPT= $(COMMON_MTL_OPTIONS) $(DEBUG_MTL_OPTIONS)
RCOPT= $(COMMON_RC_OPTIONS) $(DEBUG_RC_OPTIONS)
LNKOPT= $(COMMON_LNK_OPTIONS) $(DEBUG_LNK_OPTIONS) $(LNK_LIBS)
-BSCOPT= $(COMMON_BSC_OPTIONS) $(DEBUG_BSC_OPTIONS)
!else
COPT= $(COMMON_C_OPTIONS) $(RELEASE_C_OPTIONS) $(COMMON_C_INCLUDES)
MTLOPT= $(COMMON_MTL_OPTIONS) $(RELEASE_MTL_OPTIONS)
RCOPT= $(COMMON_RC_OPTIONS) $(RELEASE_RC_OPTIONS)
LNKOPT= $(COMMON_LNK_OPTIONS) $(RELEASE_LNK_OPTIONS) $(LNK_LIBS)
-BSCOPT= $(COMMON_BSC_OPTIONS) $(RELEASE_BSC_OPTIONS)
!endif
YAZ_CLIENT_OBJS= \
$(OBJDIR)\client.obj
+YAZ_SERVER_OBJS= \
+ "$(OBJDIR)\eventl.obj" \
+ "$(OBJDIR)\requestq.obj" \
+ "$(OBJDIR)\service.obj" \
+ "$(OBJDIR)\seshigh.obj" \
+ "$(OBJDIR)\statserv.obj" \
+ "$(OBJDIR)\tcpdchk.obj"
+
+ZTEST_OBJS= \
+ "$(OBJDIR)\read-grs.obj" \
+ "$(OBJDIR)\ztest.obj"
+
+
YAZ_ASN_OBJS= \
$(OBJDIR)\diagbib1.obj \
$(OBJDIR)\proto.obj \
<<
# Yaz client
-{$(YAZCLIENTDIR)}.c{$(OBJDIR)}.obj:
+{$(CLIENTDIR)}.c{$(OBJDIR)}.obj:
+ @$(CPP) @<<
+ /D"_CONSOLE"
+ $(COPT) $<
+<<
+
+# Ztest
+{$(ZTESTDIR)}.c{$(OBJDIR)}.obj:
@$(CPP) @<<
/D"_CONSOLE"
+ /D"_MBCS"
$(COPT) $<
<<
+# Server
+{$(SERVERDIR)}.c{$(OBJDIR)}.obj:
+ @$(CPP) @<<
+ $(COPT) $<
+<<
+
# Various YAZ source directories
-{$(YAZASNDIR)}.c{$(OBJDIR)}.obj:
+{$(ASNDIR)}.c{$(OBJDIR)}.obj:
@$(CPP) @<<
$(COPT) $<
<<
-{$(YAZCOMSTACKDIR)}.c{$(OBJDIR)}.obj:
+{$(COMSTACKDIR)}.c{$(OBJDIR)}.obj:
@$(CPP) @<<
$(COPT) $<
<<
-{$(YAZODRDIR)}.c{$(OBJDIR)}.obj:
+{$(ODRDIR)}.c{$(OBJDIR)}.obj:
@$(CPP) @<<
$(COPT) $<
<<
-{$(YAZUTILDIR)}.c{$(OBJDIR)}.obj:
+{$(UTILDIR)}.c{$(OBJDIR)}.obj:
@$(CPP) @<<
$(COPT) $<
<<
-{$(YAZRETDIR)}.c{$(OBJDIR)}.obj:
+{$(RETDIR)}.c{$(OBJDIR)}.obj:
@$(CPP) @<<
$(COPT) $<
<<
$(DLL) $(IMPLIB): "$(BINDIR)" $(DLL_OBJS)
$(LINK) @<<
$(LNKOPT)
- $(DLL_LINK_LIBS)
+ $(LINK_LIBS)
$(DLL_LINK_OPTIONS)
$(DLL_OBJS)
/out:$(DLL)
/map:"$(LIBDIR)/yaz.map"
<<
-$(CLIENT) : "$(BINDIR)" $(YAZ_CLIENT_OBJS)
+$(CLIENT) : "$(BINDIR)" $(YAZ_CLIENT_OBJS) $(IMPLIB)
$(LINK) @<<
$(LNKOPT)
$(CLIENT_LINK_OPTIONS)
/out:$(CLIENT)
<<
+$(ZTEST) : "$(BINDIR)" $(ZTEST_OBJS) $(SERVER) $(DLL)
+ $(LINK) @<<
+ $(LNKOPT)
+ $(ZTEST_LINK_OPTIONS)
+ $(LINK_LIBS)
+ shell32.lib
+ $(IMPLIB)
+ $(SERVER)
+ $(ZTEST_OBJS)
+ /out:$(ZTEST)
+<<
-# regsvr32 /s /c "$(DLL)"
-# /def:$(DEF_FILE)
-
-
-## Linking the debug info database (or what ever this is...)
-$(BSCFILE): $(DLL_OBJS)
- $(BSCMAKE) $(BSCOPT) $(OBJDIR)\*.sbr
+$(SERVER) : "$(BINDIR)" $(YAZ_SERVER_OBJS)
+ $(LINK) $(SERVER_LINK_OPTIONS) @<<
+ /nologo
+ $(LINK_LIBS)
+ $(IMPLIB)
+ $(YAZ_SERVER_OBJS)
+ /out:$(SERVER)
+<<
+# note that this links a lib, so it uses completely different options.
-# @echo OPT=$(LNKOPT)
-# @echo LIB=$(LINKLIBS)
-# @echo OBJ=$(DLL_OBJS)
-# @echo DEF=$(DEF_FILE)
###########################################################
############### Special operations
############## clean
clean:
- deltree /y "$(OBJDIR)/*.*"
-
+ del $(OBJDIR)\*.obj
+ del $(OBJDIR)\*.sbr
+ del $(DLL)
+ del $(CLIENT)
+ del $(SERVER)
+ del $(ZTEST)
########### check directories and create if needed
dirs: $(OBJDIR) $(WINDIR) $(LIBDIR) $(BINDIR)
$(OBJDIR) $(WINDIR) $(LIBDIR) $(BINDIR) :
if not exist "$@/$(NUL)" mkdir "$@"
-### test target while debugging makefile...
-foo: $(RESFILE)
- echo Ok
###########################################################
############### Explicit dependencies
$(OBJDIR)/client.obj: $(IDLGENERATED)
-
+###########################################################
+############### Log
+###########################################################
+#
+# $Log: makefile.mak,v $
+# Revision 1.5 1999-06-04 10:04:28 heikki
+# Cleaning up
+#
+# Revision 1.4 1999/06/02 13:23:29 heikki
+# Debug options for C compiler
+#
+# Revision 1.3 1999/05/19 08:26:22 heikki
+# Added comments
+#
+#