forked from Imagelibrary/rtems
This one is an enhancement to acpolish.
It replaces some Makefile variables by others variable in Makefile.ins
(tries to use unique name for some variables). It therefore eases
parsing Makefile.ins for further automatic Makefile.in conversions in
future.
To apply:
cd <rtems-source-tree>
sh <path-to>/rtems-rc-19990407-8.sh
./autogen
162 lines
4.6 KiB
Makefile
162 lines
4.6 KiB
Makefile
#
|
|
# $Id$
|
|
#
|
|
# top level directory for RTEMS build tree
|
|
# This Makefile is *not* a good example of a directory Makefile.
|
|
#
|
|
|
|
@SET_MAKE@
|
|
srcdir = @srcdir@
|
|
top_srcdir = @top_srcdir@
|
|
top_builddir = ..
|
|
subdir = c
|
|
|
|
INSTALL = @INSTALL@
|
|
|
|
RTEMS_ROOT = $(top_srcdir)/@RTEMS_TOPdir@
|
|
PROJECT_ROOT = @PROJECT_ROOT@
|
|
|
|
prefix = @prefix@
|
|
exec_prefix = @exec_prefix@
|
|
bindir = @bindir@
|
|
libdir = @libdir@
|
|
includedir = @includedir@
|
|
target = @target@
|
|
manext = 1
|
|
mandir = @mandir@/man$(manext)
|
|
program_prefix = @program_prefix@
|
|
VPATH = @srcdir@
|
|
|
|
include $(RTEMS_ROOT)/make/custom/${RTEMS_BSP}.cfg
|
|
include $(RTEMS_ROOT)/make/directory.cfg
|
|
|
|
SUB_DIRS=build-tools src
|
|
|
|
# We only make the install point for the networking header files if needed.
|
|
LIBNETWORKING_yes_V = lib/include/networking lib/include/networking/sys \
|
|
lib/include/networking/machine lib/include/networking/rtems \
|
|
lib/include/networking/vm lib/include/networking/net \
|
|
lib/include/networking/netinet lib/include/networking/arpa \
|
|
lib/include/networking/nfs
|
|
LIBNETWORKING = $(LIBNETWORKING_$(HAS_NETWORKING)_V)
|
|
|
|
# We only make the rpc install point if networking is enabled.
|
|
LIBRPC_yes_V = lib/include/rpc
|
|
LIBRPC = $(LIBRPC_$(HAS_NETWORKING)_V)
|
|
|
|
# We only make the rdbg install point if networking and rdbg is enabled.
|
|
LIBRDBG_yes_yes_V = lib/include/rdbg
|
|
LIBRDBG = $(LIBRDBG_$(HAS_NETWORKING)_$(HAS_RDBG)_V)
|
|
|
|
# We only make the rtems++ install point if it is enabled.
|
|
LIBRTEMSCPLUSPLUS_yes_V = lib/include/rtems++
|
|
LIBRTEMSCPLUSPLUS = $(LIBRTEMSCPLUSPLUS_$(HAS_CPLUSPLUS)_V)
|
|
|
|
# directories to be created in install point
|
|
CREATE_DIRS = \
|
|
lib lib/include lib/include/sys lib/include/rtems \
|
|
lib/include/rtems/score lib/include/rtems/rtems lib/include/rtems/posix \
|
|
lib/include/libc lib/include/libc/sys \
|
|
lib/include/motorola lib/include/zilog \
|
|
lib/include/libchip \
|
|
$(LIBNETWORKING) \
|
|
$(LIBRPC) \
|
|
$(LIBRDBG) \
|
|
$(LIBRTEMSCPLUSPLUS) \
|
|
bin samples \
|
|
tests tests/screens tests/screens/sptests \
|
|
tests/screens/psxtests tests/screens/mptests \
|
|
tests/screens/mptests/node1 tests/screens/mptests/node2 \
|
|
build-tools update-tools
|
|
|
|
BUILD_DIRS = ${CREATE_DIRS:%=$(PROJECT_ROOT)/${RTEMS_BSP}/%}
|
|
|
|
# Make all/install must include 'env'
|
|
# if something is added to TARGET_VARIANTS, then account for it here
|
|
make_src_makefiles: Makefile.in Makefile
|
|
-find src -name Makefile \
|
|
-exec grep -l "^preinstall" {} \; | sort > make_src_makefiles.tmp
|
|
-grep tools make_src_makefiles.tmp > make_src_makefiles
|
|
-grep -v tools make_src_makefiles.tmp >> make_src_makefiles
|
|
-rm make_src_makefiles.tmp
|
|
|
|
pre_install_src: env make_src_makefiles
|
|
cd build-tools/scripts; \
|
|
$(MAKE) RTEMS_BSP=${RTEMS_BSP} install-exec-local
|
|
cd build-tools/src; \
|
|
$(MAKE) RTEMS_BSP=${RTEMS_BSP} install-exec-local
|
|
@echo "Order of preinstall directories"
|
|
cat make_src_makefiles
|
|
@echo
|
|
CURRDIR=`pwd`; \
|
|
for i in `cat make_src_makefiles` ; do \
|
|
DIR=`dirname $$i`; \
|
|
cd $$DIR; \
|
|
$(MAKE) RTEMS_BSP=${RTEMS_BSP} preinstall; \
|
|
cd $$CURRDIR; \
|
|
done
|
|
|
|
all: pre_install_src env
|
|
debug: pre_install_src env
|
|
profile: pre_install_src env
|
|
|
|
install: all install_files
|
|
debug_install: env debug install_files
|
|
profile_install: env profile install_files
|
|
|
|
debug_all: debug
|
|
profile_all: profile
|
|
|
|
# top level clean/clobber will delete the install points
|
|
clean_WRAPUP = $(MAKE) clean_wrapup
|
|
clobber_WRAPUP = $(MAKE) clean_wrapup
|
|
|
|
clean_wrapup: clean_tools clean_dirs clean_modules
|
|
|
|
.PHONY: dirs clean_wrapup clean_dirs clean_tools clean_modules env install
|
|
|
|
$(BUILD_DIRS):
|
|
$(RTEMS_ROOT)/mkinstalldirs $(BUILD_DIRS)
|
|
if test -d $(PROJECT_ROOT)/c/src/lib/libhwapi; then \
|
|
(cd $(PROJECT_ROOT)/c/src/lib/libhwapi ; $(MAKE) mkdirs) \
|
|
fi
|
|
|
|
dirs: $(BUILD_DIRS)
|
|
|
|
distclean: clobber
|
|
|
|
clean_dirs:
|
|
$(RM) -r $(PROJECT_RELEASE)
|
|
|
|
clean_tools:
|
|
cd build-tools; $(MAKE) clean
|
|
|
|
$(PROJECT_ROOT)/${RTEMS_BSP}/Makefile.inc: $(PROJECT_ROOT)/make/Templates/Makefile.inc
|
|
echo "RTEMS_BSP = ${RTEMS_BSP}" > $@
|
|
$(CAT) $< >> $@
|
|
|
|
# NOTE: The wildcard on the install should pick up everything except
|
|
# the tests directory. This significantly minimizes the install size.
|
|
|
|
install_files: $(PROJECT_ROOT)/${RTEMS_BSP}/Makefile.inc
|
|
@top_srcdir@/mkinstalldirs $(prefix)
|
|
-$(RM) -rf $(prefix)/${RTEMS_BSP}
|
|
cd ../; tar cf - ${RTEMS_BSP}/[bilsuM]* | \
|
|
(cd $(prefix); tar xpBf - )
|
|
cd ../make; $(MAKE) RTEMS_BSP=${RTEMS_BSP} install
|
|
|
|
tests:
|
|
cd src/tests; $(MAKE) all
|
|
|
|
debug_tests: debug
|
|
cd src/tests; $(MAKE) debug
|
|
|
|
profile_tests: profile
|
|
cd src/tests; $(MAKE) profile
|
|
|
|
env: $(SRCS) dirs
|
|
|
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
|
cd $(top_builddir) \
|
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|