# Makefile.mak - makefile for MS NMAKE
-# $Id: makefile,v 1.5 1999-06-09 11:05:30 heikki Exp $
+# $Id: makefile,v 1.8 1999-07-21 08:48:02 adam Exp $
#
# Programmed by
# HL: Heikki Levanto, Index Data
all: dirs proto_h dll client server ztest
+generate: generated_files
###########################################################
############### Directories
# /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
-COMMON_RC_OPTIONS= /l 0x406 /i"$(ROOTDIR)"
-DEBUG_RC_OPTIONS=/d "_DEBUG"
-RELEASE_RC_OPTIONS=/d "NDEBUG"
-
### Linker options
LINK=link.exe
# TCL
TCL="C:\Program Files\Tcl\bin\tclsh80.exe"
-COMMON_TCL_OPTIONS= ..\util\yc.tcl -d z.tcl -I $(INCLDIR)
+COMMON_TCL_OPTIONS= ..\util\yc.tcl -d z.tcl -I$(INCLDIR)
# Final opt variables
############### Source and object modules
###########################################################
-# The resource files
-
-RCFILE=$(SRCDIR)\compmak.rc
-# Horrible Hack: The resfile contains just one line, pointing
-# to the component.tlb file (which is created by the idl compiler)
-# Devstudio wants that file to live in YazX3950, this makefile in
-# win/obj. So we need to RC files!
-
-RESFILE=$(OBJDIR)\component.res
-
-
-# The def file
-#DEF_FILE= $(ROOTDIR)\component.def
-
-
-
# Note: Ordinary source files are not specified here at
# all, make finds them in suitable dirs. The object modules
# need to be specified, though
YAZ_UTIL_OBJS= \
$(OBJDIR)\atoin.obj \
- $(OBJDIR)\dmalloc.obj \
$(OBJDIR)\log.obj \
$(OBJDIR)\marcdisp.obj \
$(OBJDIR)\nmem.obj \
$(OBJDIR)\yaz-ccl.obj \
$(OBJDIR)\otherinfo.obj
-# $(OBJDIR)\query.obj \
-
-
YAZ_RET_OBJS= \
$(OBJDIR)\d1_absyn.obj\
$(OBJDIR)\d1_attset.obj\
$(OBJDIR)\d1_varset.obj\
$(OBJDIR)\d1_write.obj
-
Z3950_OBJS= \
$(OBJDIR)\z-date.obj\
$(OBJDIR)\z-univ.obj\
DLL_OBJS= $(YAZ_OBJS)
+ALL_OBJS= \
+ $(YAZ_OBJS) \
+ $(YAZ_CLIENT_OBJS) \
+ $(YAZ_SERVER_OBJS) \
+ $(ZTEST_OBJS)
##########################################################
!if $(NEW_Z3950)
$(PROTOH): makefile $(INCLDIR)\z-proto.h
- copy $(INCLDIR)\z-proto.h $(INCLDIR)\proto.h
+ type $(INCLDIR)\z-proto.h > $(INCLDIR)\proto.h
!else
$(PROTOH): makefile $(INCLDIR)\prt-proto.h
- copy $(INCLDIR)\prt-proto.h $(INCLDIR)\proto.h
+ type $(INCLDIR)\prt-proto.h > $(INCLDIR)\proto.h
!endif
-
###########################################################
############### Generated C and H files
###########################################################
-Z3950_C_DIR=$(Z3950DIR) #!!! Should be moved to OBJ
+Z3950_C_DIR=$(Z3950DIR)
+#!!! Should be moved to OBJ, but that requires too much trickery
# Files generated from datetime.asn
-DATETIME_H_FILES = z-date.h
-DATETIME_C_FILES = z-date.c
-DATETIME_FILES = $(DATETIME_H_FILES) $(DATETIME_C_FILES)
-$(DATETIME_C_FILES): $(DATETIME_H_FILES)
-
+DATETIME_H_FILES = $(INCLDIR)\z-date.h
+DATETIME_C_FILES = $(Z3950_C_DIR)\z-date.c
# Files generated from univres.asn
-UNIVRES_H_FILES = z-univ.h
-UNIVRES_C_FILES = z-univ.c
-UNIVRES_FILES = $(UNIVRES_H_FILES) $(UNIVRES_C_FILES)
-$(UNIVRES_C_FILES): $(UNIVRES_H_FILES)
+UNIVRES_H_FILES = $(INCLDIR)\z-univ.h
+UNIVRES_C_FILES = $(Z3950_C_DIR)\z-univ.c
# Files generated from esupdate.asn
-ESUPDATE_H_FILES = zes-update.h
-ESUPDATE_C_FILES = zes-update.c
-ESUPDATE_FILES = $(ESUPDATE_H_FILES) $(ESUPDATE_C_FILES)
-$(ESUPDATE_C_FILES): $(ESUPDATE_H_FILES)
-
+ESUPDATE_H_FILES = $(INCLDIR)\zes-update.h
+ESUPDATE_C_FILES = $(Z3950_C_DIR)\zes-update.c
# Files created from z3950v3.asn
Z3950V3_H_FILES= \
$(Z3950_C_DIR)\zes-pset.c \
$(Z3950_C_DIR)\zes-update0.c
+DATETIME_FILES = $(DATETIME_H_FILES) $(DATETIME_C_FILES)
+UNIVRES_FILES = $(UNIVRES_H_FILES) $(UNIVRES_C_FILES)
+ESUPDATE_FILES = $(ESUPDATE_H_FILES) $(ESUPDATE_C_FILES)
Z3950V3_FILES= $(Z3950V3_C_FILES) $(Z3950V3_H_FILES)
-$(Z3950V3_C_FILES): $(Z3950V3_H_FILES)
-
GENERATED_C_FILES= \
$(Z3950V3_C_FILES) \
$(ESUPDATE_C_FILES) \
$(UNIVRES_H_FILES) \
$(DATETIME_H_FILES)
+generated_files: \
+ $(GENERATED_H_FILES) \
+ $(GENERATED_C_FILES) \
+ $(PROTOH)
###########################################################
############### Compiling
# DLL sources
{$(SRCDIR)}.cpp{$(OBJDIR)}.obj:
- @$(CPP) @<<
- $(COPT) $<
-<<
+ @$(CPP) $(COPT) $<
# Yaz client
{$(CLIENTDIR)}.c{$(OBJDIR)}.obj:
- @$(CPP) @<<
- $(COPT) $<
- /D"_CONSOLE"
-<<
+ @$(CPP) $(COPT) $< /D"_CONSOLE"
# Ztest
{$(ZTESTDIR)}.c{$(OBJDIR)}.obj:
- @$(CPP) @<<
- $(COPT) $<
- /D"_CONSOLE"
- /D"_MBCS"
-<<
-
+ @$(CPP) $(COPT) $< /D"_CONSOLE" /D"_MBCS"
# Server
{$(SERVERDIR)}.c{$(OBJDIR)}.obj:
- @$(CPP) @<<
- $(COPT) $<
-<<
+ @$(CPP) $(COPT) $<
# Various YAZ source directories
{$(ASNDIR)}.c{$(OBJDIR)}.obj:
- @$(CPP) @<<
- $(COPT) $<
-<<
+ @$(CPP) $(COPT) $<
{$(COMSTACKDIR)}.c{$(OBJDIR)}.obj:
- @$(CPP) @<<
- $(COPT) $<
-<<
+ @$(CPP) $(COPT) $<
{$(ODRDIR)}.c{$(OBJDIR)}.obj:
- @$(CPP) @<<
- $(COPT) $<
-<<
+ @$(CPP) $(COPT) $<
{$(UTILDIR)}.c{$(OBJDIR)}.obj:
- @$(CPP) @<<
- $(COPT) $<
-<<
+ @$(CPP) $(COPT) $<
{$(ZUTILDIR)}.c{$(OBJDIR)}.obj:
- @$(CPP) @<<
- $(COPT) $<
-<<
+ @$(CPP) $(COPT) $<
{$(RETDIR)}.c{$(OBJDIR)}.obj:
- @$(CPP) @<<
- $(COPT) $<
-<<
-
+ @$(CPP) $(COPT) $<
{$(Z3950_C_DIR)}.c{$(OBJDIR)}.obj:
- @$(CPP) @<<
- $(COPT) $<
-<<
+ @$(CPP) $(COPT) $<
-### Resource file
-$(RESFILE): $(RCFILE) $(IDLGENERATED)
- $(RSC) $(RCOPT) /fo"$(RESFILE)" $(RCFILE)
############### ASN-generated files
-
$(Z3950V3_FILES): $(Z3950DIR)\z3950v3.asn
@cd $(Z3950DIR)
$(TCL) $(TCLOPT) z3950v3.asn
+ @cd $(WINDIR)
$(DATETIME_FILES): $(Z3950DIR)\datetime.asn
@cd $(Z3950DIR)
$(TCL) $(TCLOPT) datetime.asn
+ @cd $(WINDIR)
$(UNIVRES_FILES): $(Z3950DIR)\univres.asn
@cd $(Z3950DIR)
$(TCL) $(TCLOPT) univres.asn
+ @cd $(WINDIR)
$(ESUPDATE_FILES): $(Z3950DIR)\esupdate.asn
@cd $(Z3950DIR)
$(TCL) $(TCLOPT) esupdate.asn
-
+ @cd $(WINDIR)
###########################################################
############### Linking
###########################################################
-###$(DLL) $(IMPLIB): "$(BINDIR)" $(Z3950_OBJS)
-
$(DLL) $(IMPLIB): "$(BINDIR)" $(DLL_OBJS)
@echo Linking the dll $(DLL)
$(LINK) @<<
/map:"$(LIBDIR)/yaz.map"
<<
-#foo:
-# rem $(Z3950_OBJS)
-# pause
-# rem $(DLL_OBJS)
-
-foo: $(OBJDIR)\comstack.obj
- echo foo
-
-
$(CLIENT) : "$(BINDIR)" $(YAZ_CLIENT_OBJS)
@echo Linking the client $(CLIENT)
$(LINK) @<<
- $(LNKOPT)
+ $(LNKOPT)
$(CLIENT_LINK_OPTIONS)
$(LINK_LIBS)
$(IMPLIB)
$(ZTEST) : "$(BINDIR)" $(ZTEST_OBJS) $(SERVER) $(DLL)
@echo Linking the ztest $(ZTEST)
$(LINK) @<<
- $(LNKOPT)
+ $(LNKOPT)
$(ZTEST_LINK_OPTIONS)
$(LINK_LIBS)
shell32.lib
/out:$(SERVER)
<<
-# $(LINK_LIBS)
-
# note that this links a lib, so it uses completely different options.
del $(ZTEST)
del $(TMPDIR)\*.
del $(PROTOH)
+
+realclean: clean
del $(Z3950_C_DIR)\*.c
+ del $(Z3950_C_DIR)\*.h
+ del $(INCLDIR)\z-accdes1.h
+ del $(INCLDIR)\z-core.h
+ del $(DATETIME_H_FILES)
+ del $(UNIVRES_H_FILES)
+ del $(ESUPDATE_H_FILES)
+
+# Because DOS del will only accept one file name to delete,
+# the _H_ files work only on sets that have just one file.
+# Z3950_H_FILES had to be spelled out. One more point for MS!
########### check directories and create if needed
dirs: $(OBJDIR) $(WINDIR) $(LIBDIR) $(BINDIR) $(TMPDIR)
############### Explicit dependencies
###########################################################
-$(DLL_OBJS): makefile $(PROTOH) $(GENERATED_C_FILES)
+$(ALL_OBJS): makefile $(PROTOH)
-# Note: The objects depend on their own C file already, the
-# dependency here is actually to make sure we get the
-# proper H files generated before trying to compile anything
-# Unfortunately make clean can not delete the H files so
-# easily. This hack assures that if the C's are deleted
-# (as make clean does), the H's will be generated anew...
+# force recompilation of everything, if makefile changed
+$(Z3950_OBJS): $(GENERATED_C_FILES) $(GENERATED_H_FILES)
+!if $(NEW_Z3950)
+$(PROTOH): $(GENERATED_C_FILES) $(GENERATED_H_FILES)
+!endif
+# makes sure we generate before compiling anything, as the
+# new proto.h refers to the generated files, and is included
+# in various places
###########################################################
############### Log
###########################################################
#
# $Log: makefile,v $
-# Revision 1.5 1999-06-09 11:05:30 heikki
+# Revision 1.8 1999-07-21 08:48:02 adam
+# Removed dmalloc.obj.
+#
+# Revision 1.7 1999/06/09 15:10:08 heikki
+# Cleaning up. Seems to work all right
+#
+# Revision 1.6 1999/06/09 13:33:32 heikki
+# Compiles and links both old and new type stuff all right
+#
+# Revision 1.5 1999/06/09 11:05:30 heikki
# At least it can compile
#
# Revision 1.4 1999/06/09 09:41:09 heikki