XEmacs 21.4.4 "Artificial Intelligence".
[chise/xemacs-chise.git.1] / src / Makefile.in.in
index 48716cc..43381b7 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}
@@ -54,6 +53,7 @@ RECURSIVE_MAKE=@RECURSIVE_MAKE@
 
 SHELL=/bin/sh
 RM = rm -f
+TAR = tar
 
 lispdir = ${srcdir}/../lisp/
 moduledir = ${srcdir}/../modules/
@@ -124,7 +124,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
@@ -134,8 +134,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
@@ -143,7 +147,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
@@ -189,9 +197,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)
 
@@ -342,6 +350,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) $@
@@ -382,7 +391,7 @@ ${libsrc}DOC: ${EXE_TARGET} update-elc.stamp
        $(RM) ${libsrc}DOC; \
        ${DUMPENV} ./${EXE_TARGET} -nd -batch -l ${srcdir}/../lisp/make-docfile.el -- \
                -o ${libsrc}DOC -d ${srcdir} -i ${libsrc}../site-packages \
-               ${obj_src} ${mallocdocsrc} ${rallocdocsrc}
+               ${obj_src} ${mallocdocsrc} ${rallocdocsrc} ${extra_doc_files}
 
 dump_elcs: dump-elcs
 
@@ -441,12 +450,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)
@@ -503,14 +511,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}
@@ -550,6 +558,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
@@ -689,13 +701,24 @@ hpplay.o: ${srcdir}/hpplay.c
        $(CC) -c -Demacs $(sound_cflags) $(cflags) ${srcdir}/hpplay.c
 #endif /* HAVE_NATIVE_SOUND */
 
+#if defined(HAVE_GLADE_GLADE_H) || defined(HAVE_GLADE_H)
+glade_files=glade.c
+#endif
+
+#ifdef HAVE_GTK
+extra_doc_files=emacs-widget-accessors.c ui-byhand.c $(glade_files)
+#endif
+
+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
@@ -706,7 +729,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/\#*
 
@@ -729,15 +752,15 @@ 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"; \
                done; \
                test -d s && hdrtars="$$hdrtars s/*"; \
                test -d m && hdrtars="$$hdrtars m/*"; \
-               test -n "$$hdrtars" && (tar cf - $$hdrtars) | \
-                       (cd ${archlibdir}/include && umask 022 && tar xf -); \
+               test -n "$$hdrtars" && (${TAR} cf - $$hdrtars) | \
+                       (cd ${archlibdir}/include && umask 022 && ${TAR} xf -); \
                chmod 755 ${archlibdir}/include; \
                test -d ${archlibdir}/include/s && \
                  chmod 755 ${archlibdir}/include/s; \