# Define a variable for the 'del' command to use
+# N.B. Windows Millenium Edition's ERASE can only handle one target (file or
+# wildcard) per invocation. Make sure each use has only one target!
DEL=-del
# Program name and version
!if !defined(HAVE_PNG)
HAVE_PNG=0
!endif
+!if !defined(HAVE_ZLIB)
+HAVE_ZLIB=$(HAVE_PNG)
+!endif
!if !defined(HAVE_TIFF)
HAVE_TIFF=0
!endif
USE_UNION_TYPE=0
!endif
!if !defined(USE_MINITAR)
-USE_MINITAR=1
+USE_MINITAR=$(HAVE_ZLIB)
!endif
!if !defined(USE_MINIMAL_TAGBITS)
USE_MINIMAL_TAGBITS=0
# much backslash quoting. This does not happen, of course, with a non-
# Cygwin Perl, so in that circumstance, you'd be screwed and would have
# to fix this Makefile to not have a special Cygwin case.
-! if defined(_)
+! if defined(_) || [perl -e "exit 1 if $$^O == 'cygwin';"]==1
! if [perl -p -e "s/^\\x23if defined(.+)/!if defined$$1/; s/^\\x23e/!e/;" \
-e "s/([\\s=^])([\\w\\d\\.\\-^]+\\.[ch^])/$$1$(SRC:\=\\\\)\\\\$$2/g;" \
-e "s/^(.+)\\.o:(.+)/$(OUTDIR:\=\\\\)\\\\$$1.obj:$$2/;" \
MSW_DEFINES=$(MSW_DEFINES) -DHAVE_TOOLBARS
MSW_TOOLBAR_SRC=$(SRC)\toolbar.c $(SRC)\toolbar-msw.c
MSW_TOOLBAR_OBJ=$(OUTDIR)\toolbar.obj $(OUTDIR)\toolbar-msw.obj
-MSW_LIBS=$(MSW_LIBS) comctl32.lib
!endif
!if $(HAVE_DIALOGS)
MSW_DEFINES=$(MSW_DEFINES) -DHAVE_DIALOGS
!if $(HAVE_WIDGETS)
MSW_DEFINES=$(MSW_DEFINES) -DHAVE_WIDGETS
!endif
+!if $(HAVE_TOOLBARS) || $(HAVE_WIDGETS)
+MSW_LIBS=$(MSW_LIBS) comctl32.lib
+!endif
!if $(HAVE_NATIVE_SOUND)
MSW_DEFINES=$(MSW_DEFINES) -DHAVE_NATIVE_SOUND
!endif
$(SRC)\Emacs.ad.h \
$(SRC)\paths.h
+# #### Copying is cheap, we should just force these
$(SRC)\config.h: config.h
copy config.h $(SRC)
mostlyclean:
$(DEL) $(XEMACS)\Installation
- $(DEL) $(OUTDIR)\*.lib $(OUTDIR)\*.obj $(OUTDIR)\*.pdb
- $(DEL) $(OUTDIR)\*.res $(OUTDIR)\*.sbr
- $(DEL) $(SRC)\*.exe $(SRC)\*.map $(SRC)\*.bsc $(SRC)\*.pdb
- $(DEL) $(LIB_SRC)\*.exe $(LIB_SRC)\*.obj $(LIB_SRC)\*.pdb
+ $(DEL) $(OUTDIR)\*.lib
+ $(DEL) $(OUTDIR)\*.obj
+ $(DEL) $(OUTDIR)\*.pdb
+ $(DEL) $(OUTDIR)\*.res
+ $(DEL) $(OUTDIR)\*.sbr
+ $(DEL) $(SRC)\*.exe
+ $(DEL) $(SRC)\*.map
+ $(DEL) $(SRC)\*.bsc
+ $(DEL) $(SRC)\*.pdb
+ $(DEL) $(LIB_SRC)\*.exe
+ $(DEL) $(LIB_SRC)\*.obj
+ $(DEL) $(LIB_SRC)\*.pdb
$(DEL) $(LIB_SRC)\*.res
clean: mostlyclean versionclean
$(DEL) $(XEMACS)\TAGS
nicenclean: clean
- $(DEL) $(NT)\*.bak $(NT)\*.orig $(NT)\*.rej $(NT)\*.tmp
- $(DEL) $(LIB_SRC)\*.bak $(LIB_SRC)\*.orig $(LIB_SRC)\*.rej
+ $(DEL) $(NT)\*.bak
+ $(DEL) $(NT)\*.orig
+ $(DEL) $(NT)\*.rej
+ $(DEL) $(NT)\*.tmp
+ $(DEL) $(LIB_SRC)\*.bak
+ $(DEL) $(LIB_SRC)\*.orig
+ $(DEL) $(LIB_SRC)\*.rej
$(DEL) $(LIB_SRC)\*.tmp
- $(DEL) $(SRC)\*.bak $(SRC)\*.orig $(SRC)\*.rej $(SRC)\*.tmp
- $(DEL) /s $(LISP)\*.bak $(LISP)\*.orig $(LISP)\*.rej $(LISP)\*.tmp
+ $(DEL) $(SRC)\*.bak
+ $(DEL) $(SRC)\*.orig
+ $(DEL) $(SRC)\*.rej
+ $(DEL) $(SRC)\*.tmp
+ $(DEL) $(LISP)\*.bak
+ $(DEL) $(LISP)\*.orig
+ $(DEL) $(LISP)\*.rej
+ $(DEL) $(LISP)\*.tmp
## This is used in making a distribution.
## Do not use it on development directories!
distclean: nicenclean
- $(DEL) $(SRC)\config.h $(SRC)\paths.h $(SRC)\Emacs.ad.h
- $(DEL) $(LIB_SRC)\$(CONFIG_VALUES)
+ $(DEL) $(SRC)\config.h
+ $(DEL) $(SRC)\paths.h
+ $(DEL) $(SRC)\Emacs.ad.h
+ $(DEL) $(CONFIG_VALUES)
$(DEL) $(INFODIR)\*.info*
- $(DEL) /s /q $(LISP)\*.elc
+ $(DEL) $(LISP)\*.elc
realclean: distclean
versionclean:
- $(DEL) $(SRC)\xemacs.exe $(LIB_SRC)\DOC
+ $(DEL) $(SRC)\xemacs.exe
+ $(DEL) $(LIB_SRC)\DOC
#not sure about those wildcards. DOS wildcards are stupid compared to Unix,
#and could end up deleting *everything* instead of just backup files or
$(XEMACS)\Installation:: installation
installation::
- @type > $(XEMACS)\Installation <<
+ @echo OS version:>$(XEMACS)\Installation
+ @ver >> $(XEMACS)\Installation
+ @type >> $(XEMACS)\Installation <<
!if defined(OS)
OS: $(OS)
!endif