XEmacs 21.2.45 "Thelxepeia".
[chise/xemacs-chise.git.1] / src / Makefile.in.in
index e840e6d..0b2c9cf 100644 (file)
@@ -31,11 +31,10 @@ PROGNAME=@PROGNAME@
 #ifdef PDUMP
 DUMP_TARGET = ${PROGNAME}.dmp
 EXE_TARGET  = ${PROGNAME}
-ID_FILE     = dump-id.c
+DUMP_ID     = dump-id.o
 #else
 DUMP_TARGET = ${PROGNAME}
 EXE_TARGET  = temacs
-ID_FILE     =
 #endif
 
 all: ${DUMP_TARGET}
@@ -116,10 +115,6 @@ VPATH=@srcdir@
 
 RM = rm -f
 
-#ifdef HAVE_NATIVE_SOUND
-sound_cflags=@sound_cflags@
-#endif
-
 LWLIB_SRCDIR = ${srcdir}/../lwlib
 
 #ifdef HAVE_X_WINDOWS
@@ -128,7 +123,7 @@ lwlib_deps = $(lwlib_libs)
 $(lwlib_libs) :
        cd ../lwlib && $(RECURSIVE_MAKE)
 
-x_objs=balloon_help.o balloon-x.o console-x.o device-x.o event-Xt.o frame-x.o\
+x_objs=console-x.o device-x.o event-Xt.o frame-x.o\
  glyphs-x.o objects-x.o redisplay-x.o select-x.o xgccache.o
 
 #ifdef AIX4
@@ -138,8 +133,12 @@ LIBI18N = -li18n
 X11_libs = $(LIBI18N)
 #endif /* HAVE_X_WINDOWS */
 
-#if defined (HEAP_IN_DATA) && !defined(PDUMP)
-sheap_obj=sheap.o
+#if defined (HEAP_IN_DATA) && !defined (PDUMP)
+sheap_objs=sheap.o
+#endif
+
+#if defined (WIN32_NATIVE) || defined (CYGWIN)
+win32_objs=win32.o xemacs_res.o
 #endif
 
 ## -Demacs is needed to make some files produce the correct version
@@ -147,7 +146,11 @@ sheap_obj=sheap.o
 
 cppflags = $(CPPFLAGS) -Demacs -I. $(c_switch_all)
 cflags   = $(CFLAGS) $(cppflags)
+#if defined (WIN32_NATIVE) || defined (CYGWIN)
+ldflags  = $(LDFLAGS) -mwindows $(ld_switch_all) $(ld_dynamic_link_flags)
+#else
 ldflags  = $(LDFLAGS) $(ld_switch_all) $(ld_dynamic_link_flags)
+#endif
 
 #ifdef SOLARIS2
 %.o : %.c
@@ -193,9 +196,9 @@ objs=\
  macros.o marker.o md5.o minibuf.o objects.o opaque.o\
  print.o process.o profile.o\
  rangetab.o redisplay.o redisplay-output.o regex.o\
- search.o select.o $(sheap_obj) signal.o sound.o\
+ search.o select.o $(sheap_objs) signal.o sound.o\
  specifier.o strftime.o symbols.o syntax.o sysdep.o\
- undo.o $(x_objs) widget.o window.o
+ undo.o $(x_objs) widget.o window.o $(win32_objs)
 
 obj_rtl = $(objs:.o=.c.rtl)
 
@@ -346,6 +349,7 @@ ${DUMP_TARGET}: ${EXE_TARGET} ${libsrc}DOC $(mo_file) ${other_files} update-elc.
                ./${PROGNAME} -batch -vanilla -f list-load-path-shadows; fi; \
                $(RM) SATISFIED; exit 0; fi; \
        if test -f SATISFIED; then $(RM) SATISFIED; exit 1; fi; \
+       $(RM) $@; \
        $(RECURSIVE_MAKE) $@;
 #else
        @$(RM) $@
@@ -445,12 +449,11 @@ link_deps=\
  $(start_files) ${objs} ${otherobjs}\
  $(lwlib_deps) $(dynodump_deps)
 
-temacs_deps=\
- $(link_deps) $(ID_FILE)
+temacs_deps = $(link_deps) ${DUMP_ID}
 
 temacs_link_args=\
- ${start_flags} ${ldflags} -I${srcdir} \
- -o $@ ${start_files} ${objs} ${otherobjs} ${ID_FILE} ${LIBES}
+ ${start_flags} ${ldflags}\
+ -o $@ ${start_files} ${objs} ${otherobjs} ${DUMP_ID} ${LIBES}
 
 ${EXE_TARGET}: $(temacs_deps)
        $(LD) $(temacs_link_args)
@@ -507,14 +510,14 @@ debug-temacs: ${EXE_TARGET}
 ##
 ## Purify
 PURIFY_PROG  = purify
+PURIFY_LIBS  =
 PURIFY_FLAGS =\
 #ifdef PDUMP
  -search-mmaps=yes\
 #endif
- -chain-length=32 -ignore-signals=SIGPOLL -threads=yes\
- -cache-dir=./purecache -always-use-cache-dir=yes
+ -chain-length=32 -ignore-signals=SIGPOLL\
+ -cache-dir=${blddir}/purecache -always-use-cache-dir=yes
 
-PURIFY_LIBS  = -lpthread
 puremacs: $(temacs_deps)
        $(PURIFY_PROG) $(PURIFY_FLAGS) $(LD) $(temacs_link_args) $(PURIFY_LIBS)
        cp $@ ${EXE_TARGET}
@@ -554,6 +557,10 @@ TransientEmacsShell.c.rtl : ${srcdir}/EmacsShell-sub.c TopLevelEmacsShell.o conf
        $(CC) -dr -c $(cflags) -DDEFINE_TRANSIENT_EMACS_SHELL ${srcdir}/EmacsShell-sub.c
        mv EmacsShell-sub.c.rtl TransientEmacsShell.c.rtl
 
+## The above rules are subject to a race condition if using a parallel make.
+TransientEmacsShell.o : TopLevelEmacsShell.o
+TransientEmacsShell.c.rtl : TopLevelEmacsShell.c.rtl
+
 ## Position-independent code for shared library creation
 #if USE_GCC
 pic_arg = -fpic
@@ -686,19 +693,23 @@ alloca.o : ${srcdir}/alloca.s config.h
 #endif /* ! defined (C_ALLOCA) */
 
 #ifdef HAVE_NATIVE_SOUND
+sound_cflags=@sound_cflags@
 sunplay.o: ${srcdir}/sunplay.c
        $(CC) -c  $(sound_cflags) $(cflags) ${srcdir}/sunplay.c
 hpplay.o: ${srcdir}/hpplay.c
        $(CC) -c -Demacs $(sound_cflags) $(cflags) ${srcdir}/hpplay.c
 #endif /* HAVE_NATIVE_SOUND */
 
+xemacs_res.o: ${srcdir}/../nt/xemacs.rc
+       windres --include-dir ${srcdir}/../nt -i ${srcdir}/../nt/xemacs.rc -o $@
+
 ## System-specific programs to be made.
 ## ${other_files}, $(objects_system) and $(objects_machine)
 ## select which of these should be compiled.  */
 
 .PHONY: mostlyclean clean distclean realclean versionclean extraclean
 mostlyclean:
-       $(RM) temacs puremacs quantmacs prefix-args *.o *.i  \
+       $(RM) temacs puremacs quantmacs *.o *.i  \
          core temacs.exe sheap-adjust.h
 clean: mostlyclean versionclean
        $(RM) libextcli* update-elc.stamp
@@ -709,7 +720,7 @@ distclean: clean
          GNUmakefile Makefile Makefile.in TAGS ${PROGNAME}.*
 realclean: distclean
 versionclean:
-       $(RM) ${PROGNAME} ${PROGNAME}.exe ${libsrc}DOC
+       $(RM) ${EXE_TARGET} ${DUMP_TARGET} ${libsrc}DOC
 extraclean: realclean
        $(RM) *~ \#* m/*~ m/\#* s/*~ s/\#*
 
@@ -732,7 +743,7 @@ install: ${PROGNAME}
        cd ${srcdir}; hdrdir2=`pwd`; cd $$hdir; \
        test "$$hdrdir2" != "$$hdir" && hdir="$$hdir $$hdrdir2"; \
        (for thisdir in $$hdir; do \
-               cd $$hdir && \
+               cd $$thisdir && \
                (hdrtars=; \
                for hdrfile in *.h; do \
                        hdrtars="$$hdrtars $$hdrfile"; \