[comp.windows.x] NormalLibraryTarget in Imake.rules

david@jpl-devvax.JPL.NASA.GOV (David E. Smyth) (12/21/90)

Why doesn't NormalLibraryTarget clean up the library?

Why doesn't NormalProgramTarget provide an all:: target?

i.e., I would think that NormalLibraryTarget should be as follows:

###############################################################################

/*
 * NormalLibraryTarget - generate rules to create a library.
 */
#ifndef NormalLibraryTarget
#define NormalLibraryTarget(libname,objlist)				@@\
AllTarget(lib/**/libname.a)						@@\
                                                                        @@\
lib/**/libname.a: objlist						@@\
	$(RM) $@							@@\
	$(AR) $@ objlist						@@\
	$(RANLIB) $@							@@\
									@@\
clean::									@@\
	$(RM) lib/**/libname.a
#endif /* NormalLibraryTarget */

###############################################################################

and I would think that NormalProgramTarget should be as follows:

###############################################################################

/*
 * NormalProgramTarget - generate rules to compile and link the indicated
 * program; since it does not use any default object files, it may be used for
 * multiple programs in the same Imakefile.
 */
#ifndef NormalProgramTarget
#define NormalProgramTarget(program,objects,deplibs,locallibs,syslibs)	@@\
AllTarget(program)							@@\
									@@\
program: objects deplibs						@@\
	RemoveTargetProgram($@)						@@\
	$(CC) -o $@ objects $(LDOPTIONS) locallibs $(LDLIBS) syslibs $(EXTRA_LOAD_FLAGS)	@@\
									@@\
clean::									@@\
	$(RM) program
#endif /* NormalProgramTarget */

###############################################################################