-# Makefile template for Configure for simulator common parts
-# Copyright (C) 1996 Free Software Foundation, Inc.
+# Makefile template for Configure for simulator common directory
+# Copyright (C) 1996, 1997, 2007, 2008, 2009, 2010
+# Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
-#
+#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
default: all
libdir = @libdir@
tooldir = $(libdir)/$(target_alias)
+datarootdir = @datarootdir@
datadir = @datadir@
mandir = @mandir@
man1dir = $(mandir)/man1
SHELL = /bin/sh
-INSTALL = $(srcroot)/install.sh -c
+INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
-INSTALL_XFORM = $(INSTALL) -t='$(program_transform_name)'
-INSTALL_XFORM1= $(INSTALL_XFORM) -b=.1
CC = @CC@
CC_FOR_BUILD = @CC_FOR_BUILD@
-CPP = @CPP@
-CPP_FOR_TARGET = @CPP_FOR_TARGET@
-TARGET_SUBDIR = @TARGET_SUBDIR@
CFLAGS = @CFLAGS@
SIM_CFLAGS = @sim_cflags@
+# These are used to rebuild nltvals.def.
+CPP_FOR_TARGET = @CPP_FOR_TARGET@
+TARGET_SUBDIR = @TARGET_SUBDIR@
+
HDEFINES = @HDEFINES@
TDEFINES =
.NOEXPORT:
MAKEOVERRIDES=
-all: libcommon.a
-
-LIB_OBJS = callback.o targ-map.o
+all:
-# FIXME: Ideally, callback.o and friends live in a library outside of
-# both the gdb and simulator source trees (e.g. devo/remote. Not
-# devo/libremote because this directory would contain more than just
-# a library).
-
-libcommon.a: $(LIB_OBJS)
- rm -f libcommon.a
- $(AR) $(ARFLAGS) libcommon.a $(LIB_OBJS)
- $(RANLIB) libcommon.a
-
-callback.o: callback.c targ-vals.h $(srcroot)/include/callback.h
-
-targ-map.o: targ-map.c targ-vals.h
-
-# Generate TARG_VALS_H for newlib using devo and build tree.
+# Generate nltvals.def for newlib/libgloss using devo and build tree.
# This file is shipped with distributions so we build in the source dir.
-# This is built in srcdir so putting dependencies here is risky.
# Use `make headers' to rebuild.
-headers: nltvals.def
+# Note: If gdb releases begin to contain target header files (not a good idea,
+# but if they did ...), targ-vals.def coud be generated at build time.
+# An alternative is to slurp in the tables at runtime.
.PHONY: headers
-
-# Note: If gdb releases begin to contain target header files, generate
-# targ-vals.def at build time.
-
-nltvals.def: Makefile gentvals.sh
+headers:
rootme=`pwd` ; \
cd $(srcdir) ; \
rm -f nltvals.new ; \
- echo '/* Newlib macro values needed by simulator. */' >nltvals.new ; \
- echo '/* This file is machine generated by gentvalh.sh. */' >>nltvals.new ; \
- $(SHELL) $(srcdir)/gentvals.sh errno $(srcroot)/newlib/libc/include \
- "errno.h sys/errno.h" 'E[A-Z0-9]*' "$(CPP_FOR_TARGET)" >>nltvals.new ; \
- $(SHELL) $(srcdir)/gentvals.sh signal $(srcroot)/newlib/libc/include \
- "signal.h sys/signal.h" 'SIG[A-Z0-9]*' "$(CPP_FOR_TARGET)" >>nltvals.new ; \
- $(SHELL) $(srcdir)/gentvals.sh open $(srcroot)/newlib/libc/include \
- "fcntl.h sys/fcntl.h" 'O_[A-Z0-9]*' "$(CPP_FOR_TARGET)" >>nltvals.new ; \
- $(srcroot)/move-if-change nltvals.new nltvals.def
-
-gentmap: Makefile gentmap.c
- $(CC_FOR_BUILD) $(srcdir)/gentmap.c -o gentmap $(BUILD_CFLAGS)
-
-targ-vals.h: Makefile gentmap
- rm -f targ-vals.h
- ./gentmap -h >targ-vals.h
-
-targ-map.c: Makefile gentmap
- rm -f targ-map.c
- ./gentmap -c >targ-map.c
+ $(SHELL) $(srcdir)/gennltvals.sh $(SHELL) $(srcroot) "$(CPP_FOR_TARGET)" > nltvals.new ; \
+ $(SHELL) $(srcroot)/move-if-change nltvals.new nltvals.def
.c.o:
$(CC) -c $< $(ALL_CFLAGS)
tags etags: TAGS
+# Macros like EXTERN_SIM_CORE confuse tags.
+# And the sim-n-foo.h files create functions that can't be found either.
TAGS: force
- etags *.c *.h
+ cd $(srcdir) && \
+ etags --regex '/^\([a-z_]+\) (/\1/' --regex '/^.*\/[*] TAGS: .*/' \
+ *.c *.h
clean:
- rm -f *.[oa] *~ core gentmap
- rm -f $(ALL)
+ rm -f *.[oa] *~ core
distclean mostlyclean maintainer-clean realclean: clean
rm -f TAGS
rm -f Makefile config.cache config.log config.status
- rm -f config.h stamp-h
+ rm -f cconfig.h config.h stamp-h
# Dummy target to force execution of dependent targets.
force:
# Copy the files into directories where they will be run.
-install:
+install: install-man
-install-man:
- $(INSTALL_XFORM1) $(srcdir)/run.1 $(man1dir)/run.1
+install-man: installdirs
+ n=`echo run | sed '$(program_transform_name)'`; \
+ $(INSTALL_DATA) $(srcdir)/run.1 $(DESTDIR)$(man1dir)/$$n.1
+
+installdirs:
+ $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(man1dir)
Makefile: Makefile.in config.status
$(SHELL) ./config.status
config.status: configure
$(SHELL) ./config.status --recheck
-# We can't add dependencies to configure because it causes too much trouble
-# to end users if configure's timestamp is out of sync.
-.PHONY: run-autoconf
-run-autoconf:
- cd $(srcdir) && autoconf
-
config.h: stamp-h ; @true
stamp-h: config.in config.status
CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status