1## Common stuff used in Makefiles of extensions  -*-mode: Makefile-*-
2##
3
4SHELL       = @SHELL@
5prefix      = @prefix@
6exec_prefix = @exec_prefix@
7bindir      = @bindir@
8libdir      = @libdir@
9datadir     = @datadir@
10datarootdir = @datarootdir@
11VPATH       = $(srcdir)
12GAUCHE_VERSION = @GAUCHE_VERSION@
13GAUCHE_ABI_VERSION = @GAUCHE_ABI_VERSION@
14BUILD       = @build@
15HOST        = @host@
16
17# These may be overridden by make invocators
18DESTDIR      =
19CC           = @CC@
20AR           = @AR@
21LOCAL_LFLAGS = @LOCAL_LIB@
22LIBS         = $(XLIBS) @LIBS@
23CFLAGS       = @CFLAGS@ @SHLIB_SO_CFLAGS@ $(XCFLAGS)
24CPPFLAGS     = @CPPFLAGS@ $(XCPPFLAGS)
25LDFLAGS      = $(LOCAL_LFLAGS) $(XLDFLAGS) @SHLIB_SO_LDFLAGS@
26BUILD_GOSH_FLAGS =
27
28# These are set by configure
29DEFS     = @DEFS@
30OPTFLAGS = @OPTFLAGS@
31INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/src -I$(top_builddir)/src -I$(top_srcdir)/gc/include @LOCAL_INC@ $(EXTRA_INCLUDES)
32OBJEXT   = @OBJEXT@
33EXEEXT   = @EXEEXT@
34SOEXT    = @SHLIB_SO_SUFFIX@
35BUILD_GOSH = "@BUILD_GOSH@" `cat $(top_builddir)/src/features.flags`
36
37# Main definition of compilation commands
38COMPILE   = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS)
39CCLD      = $(CC)
40LINK      = $(CCLD) $(CFLAGS) $(LDFLAGS)
41MODLINK   = $(CCLD) $(CFLAGS) $(LDFLAGS)
42
43@CROSS_COMPILING_no@GOSH           = "$(top_builddir)/src/gosh" -ftest
44@CROSS_COMPILING_yes@GOSH           = $(BUILD_GOSH) $(BUILD_GOSH_FLAGS)
45GAUCHE_INSTALL = $(GOSH) "$(top_srcdir)/src/gauche-install.in" -C
46PRECOMP        = $(GOSH) "$(top_srcdir)/src/precomp"
47INSTALL_TYPE   = sys
48
49EXT_LIBGAUCHE  = -L"$(top_builddir)/src" @EXT_LIBGAUCHE@
50
51GAUCHE_INCDIR  = $(DESTDIR)$(libdir)/gauche-$(GAUCHE_ABI_VERSION)/$(GAUCHE_VERSION)/include
52GAUCHE_LIBDIR  = $(DESTDIR)$(datadir)/gauche-$(GAUCHE_ABI_VERSION)/$(GAUCHE_VERSION)/lib
53GAUCHE_ARCHDIR = $(DESTDIR)$(libdir)/gauche-$(GAUCHE_ABI_VERSION)/$(GAUCHE_VERSION)/$(HOST)
54
55LIB_INSTALL_DIR  = @libdir@
56BIN_INSTALL_DIR  = @bindir@
57DATA_INSTALL_DIR = @datadir@
58
59CLEANFILES = core *~ test.log test.out $(XCLEANFILES)
60
61TESTRECORD = "$(top_builddir)/test.record"
62
63.SUFFIXES:
64.SUFFIXES: .S .c .o .obj .s .stub
65
66.PHONY: default all check install install-check clean distclean \
67        maintainer-clean install-std uninstall link unlink list-objects \
68	pre-package
69
70.c.obj:
71	$(COMPILE) -o `cygpath -w $@` -c `cygpath -w $<`
72
73.c.o:
74	$(COMPILE) -o $@ -c $<
75
76.s.o:
77	$(COMPILE) -c $<
78
79.S.o:
80	$(COMPILE) -c $<
81
82.stub.c :
83	$(GOSH) "$(top_srcdir)/src/genstub" $<
84
85default : all link
86
87check : all
88	@rm -f test.log
89	GAUCHE_TEST_RECORD_FILE=$(TESTRECORD) $(GOSH) -I"$(srcdir)" -I. "$(srcdir)/test.scm" > test.log
90
91install-check :
92	GAUCHE_TEST_RECORD_FILE=$(TESTRECORD) "${bindir}/gosh" "$(srcdir)/test.scm"
93
94clean : unlink
95	rm -rf $(CLEANFILES) *.$(OBJEXT) *.$(SOEXT)
96
97distclean : clean
98	rm -rf $(GENERATED)
99
100maintainer-clean : clean
101	rm -rf $(GENERATED)
102
103pre-package : $(PRE_PACKAGE_FILES)
104
105install-std : all
106	$(GAUCHE_INSTALL) -m 444 -S "$(srcdir)" -T "$(GAUCHE_INCDIR)" $(HDRFILES)
107	$(GAUCHE_INSTALL) -m 444 -S "$(srcdir)" -T "$(GAUCHE_LIBDIR)/$(SCM_CATEGORY)" $(SCMFILES)
108	$(GAUCHE_INSTALL) -m 555 -T "$(GAUCHE_ARCHDIR)" $(LIBFILES)
109
110uninstall :
111
112link : all
113	-$(GOSH) "$(top_srcdir)/ext/xlink" -l -g "$(SCM_CATEGORY)" \
114	  -b "$(top_builddir)" -s $(srcdir) $(LIBFILES) $(SCMFILES)
115
116unlink :
117	-@$(GOSH) "$(top_srcdir)/ext/xlink" -u -g "$(SCM_CATEGORY)" \
118	  -b "$(top_builddir)" -s $(srcdir) $(LIBFILES) $(SCMFILES)
119
120list-objects:
121	@if test "X$(OBJECTS)" != X; then \
122	   for o in $(OBJECTS); do echo "/// `pwd`/$$o"; done;\
123	fi
124