I am using the hpux ported/pre-compiled gmake, version 3.77 under HPUX 11.00, and I am running into some unexpected behaviour. Any help would be appreciated. I have a Pattern rule defined, and within that pattern rule, I need to check for the existance of another file, and slightly change the "build" step to include the file if it exists. I have included my makefile below. To use this, first do a 'make initial'. This will create (touch) all the required files. Then, each successive invocation of make will touch the proper files to re-run the tests. This is only a demo Makefile, but it demonstrates the problem I am experienceing. The area I am concerned about is in the middle of the output where it says: findicf = "" making with icf file "" making with icf file "" Both of these lines should say: making WITHOUT icf file "" making WITHOUT icf file"" If anyone has any clues, or insights, I would appreciate them Thanks. ------------------------------------------------------------------------------ --------------------------- Makefile begins here ------------------------------------------------------------------------------ --------------------------- #----------------------------------------------------------------------------# # $RCSfile: Makefile,v $ # $Date: 2000/04/27 21:50:48 $ # $Revision: 1.22 $ # $Purpose: makefile for ASR Database Server # $Comments: $ Test some auto-checkout Features #----------------------------------------------------------------------------# # rcs_ident: $Id: Makefile,v 1.22 2000/04/27 21:50:48 commpg Exp $ #----------------------------------------------------------------------------# #-- include common make rules ICFS := \ AsrDbServer.icf IDLS := \ AsrDbServer.idl \ AsrData.idl GENERATED := \ $(addsuffix _c.h,$(basename $(IDLS))) \ $(addsuffix _c.cpp,$(basename $(IDLS))) \ $(addsuffix _s.h,$(basename $(IDLS))) \ $(addsuffix _s.cpp,$(basename $(IDLS))) #-- libraries, programs, and drivers LIBRARIES = PROGRAMS = DRIVERS = #-- objects OBJECTS := \ idlstream.o timestamp.o \ $(addsuffix _c.o,$(basename $(IDLS))) \ $(addsuffix _s.o,$(basename $(IDLS))) SECONDARY: $(GENERATED) #-- (1st or primary) default goal default:: touchit source libs programs drivers #-- some other worthy goals all: idl source objects libs programs drivers tmp idl : $(ICFS) $(IDLS) source: $(GENERATED) objects: $(OBJECTS) libs: $(LIBRARIES) programs: $(PROGRAMS) drivers: $(DRIVERS) touchit: touch AsrData.idl $(ICFS) initial: touch $(GENERATED) #-- include file dependencies #$(GENERATED) $(OBJECTS) : $(MAKE_FILES) $(OBJECTS): %.o: %.cpp %.h #-- Handle the auto-checkout of ICF files, and making sure the IDL get's compiled #-- if the ICF file changes %.idl : %.icf @echo updating idl because of icf touch $@ #-- Generate source files from IDL #-- Set up a pattern to check to see if this idl has an associated ICF file findicf=$(strip $(findstring $(basename $<).icf,$(ICFS))) %_c.cpp %_c.h %_s.cpp %_s.h : %.idl @echo findicf = \"$(findicf)\" #ifeq ("AsrDbServer.icf",$(strip $(findstring $(basename $<).icf,$(ICFS)))) ifeq ("",$(findicf)) # check if icf file exists #ifeq '' "$(findicf)" # check if icf file exists @echo making without icf file \"$(findstring $(basename $<).icf,$(ICFS))\" @echo making without icf file \"$(findicf)\" else @echo making with icf file \"$(findstring $(basename $<).icf,$(ICFS))\" @echo making with icf file \"$(findicf)\" endif touch $(basename $<)_c.cpp touch $(basename $<)_c.h touch $(basename $<)_s.cpp touch $(basename $<)_s.h touch $(basename $<)_c.o touch $(basename $<)_s.o libBea.a : $(GENERATED) touch $@ #-- cleanup the directory # note that makeRules already cleans clean:: rm -f core *.o $(PROGRAMS) $(LIBRARIES) $(GENERATED) #-- clobber all targets # note that makeRules already clobbers clobber:: #-- install libraries install_libs: source libs $(CP) $(LIBRARIES) $(LIB_DIR)/ #-- install programs (not) install_programs: ; @echo "This rule left blank intentionally" #-- install everything install: install_libs # eof # # DO NOT DELETE THIS LINE -- make depend depends on it. ------------------------------------------------------------------------------ --------------------------- Makefile ends here ------------------------------------------------------------------------------ --------------------------- -- **** Please remove the NO.SPAM when replying ****