From a80fc77b658a7883df95ac41ad83ac9ff7c8ff07 Mon Sep 17 00:00:00 2001 From: "Peter S. Mazinger" Date: Tue, 25 Oct 2005 22:17:39 +0000 Subject: All Makefile.in's. Only arm/i386/mips/powerpc/x86_64 are done, the other archs lack proper crt1. The Makefiles in extra/scripts are intended to be linked into each dir, where it is necessary to build locally. --- Makefile.in | 392 +++++++++++++++++++++++ Makefile.libs | 109 ------- Makerules | 265 +++++++++++++-- Rules.mak | 5 +- extra/scripts/Makefile.libs.lvl1 | 13 + extra/scripts/Makefile.libs.lvl2 | 13 + extra/scripts/Makefile.objs.lvl2 | 13 + extra/scripts/Makefile.objs.lvl3 | 13 + extra/scripts/Makefile.objs.lvl4 | 13 + ldso/Makefile.in | 45 +++ ldso/ldso/Makefile.in | 39 ++- ldso/libdl/Makefile.in | 57 ++-- libc/Makefile.in | 57 ++++ libc/inet/Makefile.in | 72 +++++ libc/inet/rpc/Makefile.in | 50 +++ libc/misc/Makefile.in | 36 +++ libc/misc/assert/Makefile.in | 26 ++ libc/misc/ctype/Makefile.in | 56 ++++ libc/misc/dirent/Makefile.in | 28 ++ libc/misc/error/Makefile.in | 25 ++ libc/misc/file/Makefile.in | 27 ++ libc/misc/fnmatch/Makefile.in | 24 ++ libc/misc/ftw/Makefile.in | 38 +++ libc/misc/glob/Makefile.in | 30 ++ libc/misc/gnu/Makefile.in | 26 ++ libc/misc/internals/Makefile.in | 41 +++ libc/misc/intl/Makefile.in | 33 ++ libc/misc/locale/Makefile.in | 61 ++++ libc/misc/mntent/Makefile.in | 26 ++ libc/misc/pthread/Makefile.in | 26 ++ libc/misc/regex/Makefile.in | 26 ++ libc/misc/search/Makefile.in | 66 ++++ libc/misc/statfs/Makefile.in | 28 ++ libc/misc/syslog/Makefile.in | 26 ++ libc/misc/sysvipc/Makefile.in | 62 ++++ libc/misc/time/Makefile.in | 69 ++++ libc/misc/ttyent/Makefile.in | 25 ++ libc/misc/utmp/Makefile.in | 26 ++ libc/misc/wchar/Makefile.in | 49 +++ libc/misc/wctype/Makefile.in | 50 +++ libc/misc/wordexp/Makefile.in | 25 ++ libc/pwd_grp/Makefile.in | 48 +++ libc/signal/Makefile.in | 36 +++ libc/stdio/Makefile.in | 143 +++++++++ libc/stdlib/Makefile.in | 122 +++++++ libc/stdlib/malloc-simple/Makefile.in | 31 ++ libc/stdlib/malloc-standard/Makefile.in | 33 ++ libc/stdlib/malloc/Makefile.in | 42 +++ libc/string/Makefile.in | 95 ++++++ libc/string/arm/Makefile.in | 28 ++ libc/string/frv/Makefile.in | 28 ++ libc/string/generic/Makefile.in | 34 ++ libc/string/i386/Makefile.in | 36 +++ libc/string/mips/Makefile.in | 27 ++ libc/string/powerpc/Makefile.in | 34 ++ libc/string/sh64/Makefile.in | 28 ++ libc/string/sparc/Makefile.in | 28 ++ libc/string/x86_64/Makefile.in | 28 ++ libc/sysdeps/Makefile.in | 8 + libc/sysdeps/linux/Makefile.in | 10 + libc/sysdeps/linux/arm/Makefile.in | 38 +++ libc/sysdeps/linux/common/Makefile.in | 52 +++ libc/sysdeps/linux/i386/Makefile.in | 39 +++ libc/sysdeps/linux/mips/Makefile.in | 42 +++ libc/sysdeps/linux/powerpc/Makefile.in | 38 +++ libc/sysdeps/linux/x86_64/Makefile.in | 38 +++ libc/termios/Makefile.in | 41 +++ libc/unistd/Makefile.in | 51 +++ libcrypt/Makefile.in | 29 +- libintl/Makefile.in | 40 ++- libm/Makefile.in | 86 +++-- libm/powerpc/Makefile.in | 25 ++ libnsl/Makefile.in | 29 +- libpthread/Makefile.in | 57 ++++ libpthread/linuxthreads/Makefile.in | 59 ++-- libpthread/linuxthreads/sysdeps/sh64/Makefile.in | 33 +- libpthread/linuxthreads_db/Makefile.in | 33 +- libresolv/Makefile.in | 29 +- librt/Makefile.in | 29 +- libutil/Makefile.in | 30 +- 80 files changed, 3476 insertions(+), 292 deletions(-) create mode 100644 Makefile.in delete mode 100644 Makefile.libs create mode 100644 extra/scripts/Makefile.libs.lvl1 create mode 100644 extra/scripts/Makefile.libs.lvl2 create mode 100644 extra/scripts/Makefile.objs.lvl2 create mode 100644 extra/scripts/Makefile.objs.lvl3 create mode 100644 extra/scripts/Makefile.objs.lvl4 create mode 100644 ldso/Makefile.in create mode 100644 libc/Makefile.in create mode 100644 libc/inet/Makefile.in create mode 100644 libc/inet/rpc/Makefile.in create mode 100644 libc/misc/Makefile.in create mode 100644 libc/misc/assert/Makefile.in create mode 100644 libc/misc/ctype/Makefile.in create mode 100644 libc/misc/dirent/Makefile.in create mode 100644 libc/misc/error/Makefile.in create mode 100644 libc/misc/file/Makefile.in create mode 100644 libc/misc/fnmatch/Makefile.in create mode 100644 libc/misc/ftw/Makefile.in create mode 100644 libc/misc/glob/Makefile.in create mode 100644 libc/misc/gnu/Makefile.in create mode 100644 libc/misc/internals/Makefile.in create mode 100644 libc/misc/intl/Makefile.in create mode 100644 libc/misc/locale/Makefile.in create mode 100644 libc/misc/mntent/Makefile.in create mode 100644 libc/misc/pthread/Makefile.in create mode 100644 libc/misc/regex/Makefile.in create mode 100644 libc/misc/search/Makefile.in create mode 100644 libc/misc/statfs/Makefile.in create mode 100644 libc/misc/syslog/Makefile.in create mode 100644 libc/misc/sysvipc/Makefile.in create mode 100644 libc/misc/time/Makefile.in create mode 100644 libc/misc/ttyent/Makefile.in create mode 100644 libc/misc/utmp/Makefile.in create mode 100644 libc/misc/wchar/Makefile.in create mode 100644 libc/misc/wctype/Makefile.in create mode 100644 libc/misc/wordexp/Makefile.in create mode 100644 libc/pwd_grp/Makefile.in create mode 100644 libc/signal/Makefile.in create mode 100644 libc/stdio/Makefile.in create mode 100644 libc/stdlib/Makefile.in create mode 100644 libc/stdlib/malloc-simple/Makefile.in create mode 100644 libc/stdlib/malloc-standard/Makefile.in create mode 100644 libc/stdlib/malloc/Makefile.in create mode 100644 libc/string/Makefile.in create mode 100644 libc/string/arm/Makefile.in create mode 100644 libc/string/frv/Makefile.in create mode 100644 libc/string/generic/Makefile.in create mode 100644 libc/string/i386/Makefile.in create mode 100644 libc/string/mips/Makefile.in create mode 100644 libc/string/powerpc/Makefile.in create mode 100644 libc/string/sh64/Makefile.in create mode 100644 libc/string/sparc/Makefile.in create mode 100644 libc/string/x86_64/Makefile.in create mode 100644 libc/sysdeps/Makefile.in create mode 100644 libc/sysdeps/linux/Makefile.in create mode 100644 libc/sysdeps/linux/arm/Makefile.in create mode 100644 libc/sysdeps/linux/common/Makefile.in create mode 100644 libc/sysdeps/linux/i386/Makefile.in create mode 100644 libc/sysdeps/linux/mips/Makefile.in create mode 100644 libc/sysdeps/linux/powerpc/Makefile.in create mode 100644 libc/sysdeps/linux/x86_64/Makefile.in create mode 100644 libc/termios/Makefile.in create mode 100644 libc/unistd/Makefile.in create mode 100644 libm/powerpc/Makefile.in create mode 100644 libpthread/Makefile.in diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 000000000..95479231d --- /dev/null +++ b/Makefile.in @@ -0,0 +1,392 @@ +# Makefile for uClibc +# +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +#-------------------------------------------------------------- +# You shouldn't need to mess with anything beyond this point... +#-------------------------------------------------------------- +noconfig_targets := menuconfig config oldconfig randconfig \ + defconfig allyesconfig allnoconfig clean distclean \ + release tags + +TOPDIR=./ + +top_srcdir=$(TOPDIR) +top_builddir=./ +include $(top_builddir)Rules.mak + +# need to have libc.so built, before we can build the others +ifeq ($(HAVE_SHARED),y) +PRE_DIRS = ldso libc +DIRS = ldso libcrypt libresolv libnsl libutil librt +else +PRE_DIRS = libc +DIRS = libcrypt libresolv libnsl libutil librt +endif +ifeq ($(UCLIBC_HAS_FLOATS),y) + DIRS += libm +endif +ifeq ($(UCLIBC_HAS_THREADS),y) + DIRS += libpthread +endif +ifeq ($(UCLIBC_HAS_GETTEXT_AWARENESS),y) + DIRS += libintl +endif + +ifeq ($(HAVE_DOT_CONFIG),y) + +all: finished + +# In this section, we need .config +-include .config.cmd + +finished: subdirs + $(SECHO) + $(SECHO) Finally finished compiling ... + $(SECHO) + +include/bits/uClibc_config.h: .config + @if [ ! -x $(top_builddir)extra/config/conf ] ; then \ + $(MAKE) -C $(top_builddir)extra/config conf; \ + fi + $(RM) -r $(top_builddir)include/bits + $(INSTALL) -d $(top_builddir)include/bits + @$(top_builddir)extra/config/conf -o $(top_srcdir)extra/Configs/Config.in + +# For the moment, we have to keep re-running this target +# because the fix includes scripts rely on pre-processers +# in order to generate the headers correctly :(. That +# means we can't use the $(HOSTCC) in order to get the +# correct output. +ifeq ($(ARCH_HAS_MMU),y) +export header_extra_args = +else +export header_extra_args = -n +endif +headers: $(top_srcdir)include/bits/uClibc_config.h + @$(SHELL_SET_X); \ + $(top_srcdir)extra/scripts/fix_includes.sh \ + -k $(KERNEL_SOURCE) -t $(TARGET_ARCH) \ + $(header_extra_args) + @cd $(top_builddir)include/bits; \ + set -e; \ + for i in `ls ../../libc/sysdeps/linux/common/bits/*.h` ; do \ + $(LN) -fs $$i .; \ + done; \ + if [ -d ../../libc/sysdeps/linux/$(TARGET_ARCH)/bits ] ; then \ + for i in `ls ../../libc/sysdeps/linux/$(TARGET_ARCH)/bits/*.h` ; do \ + $(LN) -fs $$i .; \ + done; \ + fi + @cd $(top_builddir)include/sys; \ + set -e; \ + for i in `ls ../../libc/sysdeps/linux/common/sys/*.h` ; do \ + $(LN) -fs $$i .; \ + done; \ + if [ -d ../../libc/sysdeps/linux/$(TARGET_ARCH)/sys ] ; then \ + for i in `ls ../../libc/sysdeps/linux/$(TARGET_ARCH)/sys/*.h` ; do \ + $(LN) -fs $$i .; \ + done; \ + fi + @cd $(top_builddir); \ + set -e; \ + $(SHELL_SET_X); \ + TOPDIR=. CC="$(CC)" /bin/sh extra/scripts/gen_bits_syscall_h.sh > include/bits/sysnum.h.new; \ + if cmp include/bits/sysnum.h include/bits/sysnum.h.new >/dev/null 2>&1; then \ + $(RM) include/bits/sysnum.h.new; \ + else \ + $(RM) include/bits/sysnum.h; \ + mv -f include/bits/sysnum.h.new include/bits/sysnum.h; \ + fi +ifeq ($(UCLIBC_HAS_THREADS),y) + $(MAKE) -C libpthread threads_headers +endif + $(MAKE) -C libc/sysdeps/linux/common common_headers + $(MAKE) -C libc/sysdeps/linux/$(TARGET_ARCH) arch_headers + +# Command used to download source code +WGET:=wget --passive-ftp + +LOCALE_DATA_FILENAME:=uClibc-locale-030818.tgz + +pregen: headers +ifeq ($(UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA),y) + (cd $(top_builddir)extra/locale; \ + if [ ! -f $(LOCALE_DATA_FILENAME) ] ; then \ + $(WGET) http://www.uclibc.org/downloads/$(LOCALE_DATA_FILENAME) ; \ + fi ) +endif +ifeq ($(UCLIBC_PREGENERATED_LOCALE_DATA),y) + (cd $(top_builddir)extra/locale; zcat $(LOCALE_DATA_FILENAME) | tar -xvf -) + $(MAKE) -C $(top_srcdir)extra/locale pregen +endif + +pre_subdirs: $(patsubst %, _pre_dir_%, $(PRE_DIRS)) +$(patsubst %, _pre_dir_%, $(PRE_DIRS)): pregen + $(MAKE) -C $(patsubst _pre_dir_%, %, $@) + +subdirs: $(patsubst %, _dir_%, $(DIRS)) +$(patsubst %, _dir_%, $(DIRS)): pre_subdirs + $(MAKE) -C $(patsubst _dir_%, %, $@) + +install: install_runtime install_dev finished2 + + +RUNTIME_PREFIX_LIB_FROM_DEVEL_PREFIX_LIB=$(shell $(top_srcdir)extra/scripts/relative_path.sh $(DEVEL_PREFIX)lib $(RUNTIME_PREFIX)lib) + +# Installs header files. +install_headers: + $(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)include + if [ "$(KERNEL_SOURCE)" == "$(DEVEL_PREFIX)" ] ; then \ + extra_exclude="--exclude include/linux --exclude include/asm'*'" ; \ + else \ + extra_exclude="" ; \ + fi ; \ + tar -chf - include --exclude .svn --exclude CVS $$extra_exclude \ + | tar -xf - -C $(PREFIX)$(DEVEL_PREFIX) + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/ssp-internal.h +ifneq ($(UCLIBC_HAS_FLOATS),y) + # Remove floating point related headers since float support is disabled. + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/complex.h + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/fpu_control.h + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/ieee754.h + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/math.h + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/tgmath.h + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/bits/uClibc_fpmax.h +endif +ifneq ($(UCLIBC_HAS_WCHAR),y) + # Remove wide char headers since wide char support is disabled. + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/wctype.h + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/wchar.h +endif +ifneq ($(UCLIBC_HAS_LOCALE),y) + # Remove iconv header since locale support is disabled. + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/iconv.h +endif +ifneq ($(UCLIBC_HAS_GLIBC_CUSTOM_PRINTF),y) + # Remove printf header since custom print specifier support is disabled. + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/printf.h +endif +ifneq ($(UCLIBC_HAS_XLOCALE),y) + # Remove xlocale header since extended locale support is disabled. + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/xlocale.h +endif +ifneq ($(UCLIBC_HAS_GETTEXT_AWARENESS),y) + # Remove libintl header since gettext support is disabled. + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/libintl.h +endif +ifneq ($(UCLIBC_HAS_REGEX),y) + # Remove regex headers since regex support is disabled. + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/regex.h + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/regexp.h +endif +ifneq ($(UCLIBC_HAS_WORDEXP),y) + # Remove wordexp header since wordexp support is disabled. + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/wordexp.h +endif +ifneq ($(UCLIBC_HAS_FTW),y) + # Remove ftw header since ftw support is disabled. + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/ftw.h +endif +ifneq ($(UCLIBC_HAS_GLOB),y) + # Remove glob header since glob support is disabled. + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/glob.h +endif +ifneq ($(UCLIBC_HAS_GNU_GETOPT),y) + # Remove getopt header since gnu getopt support is disabled. + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/getopt.h +endif +ifneq ($(HAS_SHADOW),y) + # Remove shadow header since shadow password support is disabled. + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/shadow.h +endif +ifneq ($(PTHREADS_DEBUG_SUPPORT),y) + # Remove thread_db header since thread debug support is disabled. + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/thread_db.h +endif +ifneq ($(UCLIBC_HAS_THREADS),y) + # Remove pthread headers since thread support is disabled. + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/*thread*.h + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/semaphore.h + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/bits/*thread*.h +endif + -@for i in `find $(PREFIX)$(DEVEL_PREFIX) -type d` ; do \ + chmod 755 $$i; chmod 644 $$i/*.h > /dev/null 2>&1; \ + done + -find $(PREFIX)$(DEVEL_PREFIX) -name .svn | xargs $(RM) -r + -chown -R `id | sed 's/^uid=\([0-9]*\).*gid=\([0-9]*\).*$$/\1:\2/'` $(PREFIX)$(DEVEL_PREFIX) + +# Installs development library links. +install_dev: install_headers + $(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)lib + -$(INSTALL) -m 644 lib/*.[ao] $(PREFIX)$(DEVEL_PREFIX)lib/ +ifeq ($(HAVE_SHARED),y) + for i in `find lib/ -type l -name 'lib[a-zA-Z]*.so' | \ + sed -e 's/lib\///'` ; do \ + $(LN) -sf $(RUNTIME_PREFIX_LIB_FROM_DEVEL_PREFIX_LIB)$$i.$(MAJOR_VERSION) \ + $(PREFIX)$(DEVEL_PREFIX)lib/$$i; \ + done + if [ -f $(top_builddir)lib/libc.so -a -f $(PREFIX)$(RUNTIME_PREFIX)lib/$(SHARED_MAJORNAME) ] ; then \ + $(RM) $(PREFIX)$(DEVEL_PREFIX)lib/libc.so; \ + sed -e '/^GROUP/d' $(top_builddir)lib/libc.so > $(PREFIX)$(DEVEL_PREFIX)lib/libc.so; \ + fi +ifeq ($(COMPAT_ATEXIT),y) + if [ -f $(top_builddir)lib/libc.so -a -f $(PREFIX)$(RUNTIME_PREFIX)lib/$(SHARED_MAJORNAME) ] ; then \ + echo "GROUP ( $(DEVEL_PREFIX)lib/$(NONSHARED_LIBNAME) $(RUNTIME_PREFIX)lib/$(SHARED_MAJORNAME) )" \ + >> $(PREFIX)$(DEVEL_PREFIX)lib/libc.so; \ + fi +else + if [ -f $(top_builddir)lib/libc.so -a -f $(PREFIX)$(RUNTIME_PREFIX)lib/$(SHARED_MAJORNAME) ] ; then \ + echo "GROUP ( $(RUNTIME_PREFIX)lib/$(SHARED_MAJORNAME) $(DEVEL_PREFIX)lib/$(NONSHARED_LIBNAME) )" \ + >> $(PREFIX)$(DEVEL_PREFIX)lib/libc.so; \ + fi +endif +ifeq ($(PTHREADS_DEBUG_SUPPORT),y) + $(LN) -sf $(RUNTIME_PREFIX_LIB_FROM_DEVEL_PREFIX_LIB)libthread_db.so.1 \ + $(PREFIX)$(DEVEL_PREFIX)lib/libthread_db.so +endif +# # If we build shared libraries then the static libs are PIC... +# # Make _pic.a symlinks to make mklibs.py and similar tools happy. + if [ -d lib ] ; then \ + for i in `find lib/ -type f -name 'lib*.a' | sed -e 's/lib\///'` ; do \ + $(LN) -sf $$i $(PREFIX)$(DEVEL_PREFIX)lib/`echo $$i \ + | sed -e 's/\.a$$/_pic.a/'`; \ + done ; \ + fi +endif + +# Installs run-time libraries +install_runtime: +ifeq ($(HAVE_SHARED),y) + $(INSTALL) -d $(PREFIX)$(RUNTIME_PREFIX)lib + $(INSTALL) -m 644 lib/lib*-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so \ + $(PREFIX)$(RUNTIME_PREFIX)lib + cp -dRf lib/*.so.* $(PREFIX)$(RUNTIME_PREFIX)lib + @if [ -x lib/ld-uClibc-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so ] ; then \ + set -e; \ + $(SHELL_SET_X); \ + $(INSTALL) -m 755 lib/ld-uClibc-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so \ + $(PREFIX)$(RUNTIME_PREFIX)lib; \ + fi +endif + +utils: + $(MAKE) CROSS="$(CROSS)" CC="$(CC)" -C utils + +# Installs helper applications, such as 'ldd' and 'ldconfig' +install_utils: utils + $(MAKE) CROSS="$(CROSS)" CC="$(CC)" -C utils install + +finished2: + $(SECHO) + $(SECHO) Finished installing ... + $(SECHO) + +else # ifeq ($(HAVE_DOT_CONFIG),y) + +all: menuconfig + +# configuration +# --------------------------------------------------------------------------- +extra/config/conf: + $(MAKE) -C extra/config conf + +extra/config/mconf: + $(MAKE) -C extra/config ncurses mconf + +menuconfig: extra/config/mconf + $(RM) -r include/bits + $(INSTALL) -d include/bits + @./extra/config/mconf extra/Configs/Config.in + $(MAKE) headers + +config: extra/config/conf + $(RM) -r include/bits + $(INSTALL) -d include/bits + @./extra/config/conf extra/Configs/Config.in + +oldconfig: extra/config/conf + $(RM) -r include/bits + $(INSTALL) -d include/bits + @./extra/config/conf -o extra/Configs/Config.in + +randconfig: extra/config/conf + $(RM) -r include/bits + $(INSTALL) -d include/bits + @./extra/config/conf -r extra/Configs/Config.in + +allyesconfig: extra/config/conf + $(RM) -r include/bits + $(INSTALL) -d include/bits + @./extra/config/conf -y extra/Configs/Config.in + sed -i -e "s/^DODEBUG=.*/# DODEBUG is not set/" .config + sed -i -e "s/^DOASSERTS=.*/# DOASSERTS is not set/" .config + sed -i -e "s/^SUPPORT_LD_DEBUG_EARLY=.*/# SUPPORT_LD_DEBUG_EARLY is not set/" .config + sed -i -e "s/^SUPPORT_LD_DEBUG=.*/# SUPPORT_LD_DEBUG is not set/" .config + sed -i -e "s/^UCLIBC_MJN3_ONLY=.*/# UCLIBC_MJN3_ONLY is not set/" .config + @./extra/config/conf -o extra/Configs/Config.in + +allnoconfig: extra/config/conf + $(RM) -r include/bits + $(INSTALL) -d include/bits + @./extra/config/conf -n extra/Configs/Config.in + +defconfig: extra/config/conf + $(RM) -r include/bits + $(INSTALL) -d include/bits + @./extra/config/conf -d extra/Configs/Config.in + +clean: + @$(RM) -r lib include/bits + $(RM) lib*/*.a ldso/*/*.a + $(RM) libc/misc/locale/locale_data.c + $(RM) libc/misc/internals/interp.c + $(RM) include/fpu_control.h + $(MAKE) -C extra/locale clean + $(MAKE) -C ldso ldso_headers_clean + $(MAKE) -C libpthread threads_headers_clean + $(MAKE) -C test clean + $(MAKE) -C utils clean + @set -e; \ + for i in `(cd $(top_builddir)libc/sysdeps/linux/common/sys; ls *.h)` ; do \ + $(RM) include/sys/$$i; \ + done; \ + if [ -d libc/sysdeps/linux/$(TARGET_ARCH)/sys ] ; then \ + for i in `(cd libc/sysdeps/linux/$(TARGET_ARCH)/sys; ls *.h)` ; do \ + $(RM) include/sys/$$i; \ + done; \ + fi + @$(RM) include/linux include/asm* + @if [ -d libc/sysdeps/linux/$(TARGET_ARCH) ]; then \ + $(MAKE) -C libc/sysdeps/linux/$(TARGET_ARCH) clean; \ + fi + -find . \( -name \*.o -o -name \*.os -o -name \*.oS \) -exec $(RM) {} \; + +distclean: clean + -find . \( -name core -o -name \*.orig -o -name \*~ -o -name .\#\* \) -exec $(RM) {} \; + $(RM) .config .config.old .config.cmd + $(RM) extra/locale/*.txt + $(MAKE) -C extra clean + +release: distclean + cd ..; \ + $(RM) -r uClibc-$(VERSION); \ + cp -dRf uClibc uClibc-$(VERSION); \ + find uClibc-$(VERSION)/ -type f \ + -name .\#* -exec $(RM) -r {} \; ; \ + find uClibc-$(VERSION)/ -type d \ + -name .svn -exec $(RM) -r {} \; ; \ + \ + tar -cvzf uClibc-$(VERSION).tar.gz uClibc-$(VERSION)/ + +endif # ifeq ($(HAVE_DOT_CONFIG),y) + +include $(top_srcdir)Makerules + +check: + $(MAKE) -C test + +.PHONY: dummy subdirs release distclean clean config oldconfig menuconfig utils diff --git a/Makefile.libs b/Makefile.libs deleted file mode 100644 index 970127076..000000000 --- a/Makefile.libs +++ /dev/null @@ -1,109 +0,0 @@ -# Makefile for uClibc -# -# Copyright (C) 2002-2003 Erik Andersen -# -# Licensed under LGPL v2.1, see the file COPYING.LIB in this tarball for details. -# - -#LIB_NAME:=libsome - -ifneq ($(strip $(LIB_NAME)),) - -ifeq ($(strip $(srcdir)),) -srcdir=$(top_srcdir)$(LIB_NAME) -endif -ifeq ($(strip $($(LIB_NAME)_DIR)),) -$(LIB_NAME)_DIR:=$(top_builddir)$(LIB_NAME) -endif -ifeq ($(strip $($(LIB_NAME)_FULL_NAME)),) -$(LIB_NAME)_FULL_NAME:=$(LIB_NAME)-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so -endif - -ifeq ($(strip $($(LIB_NAME)_SRC)),) -ifeq ($(strip $($(LIB_NAME)_MSRC)),) -$(LIB_NAME)_SRC:=$(wildcard $(srcdir)/*.c) -endif -endif -ifeq ($(strip $($(LIB_NAME)_OBJ)),) -$(LIB_NAME)_OBJ:=$(patsubst $(srcdir)/%.c,$($(LIB_NAME)_DIR)/%.o,$($(LIB_NAME)_SRC)) -endif -$(LIB_NAME)_OBJ_PIC:=$(patsubst %.o,%.os,$($(LIB_NAME)_OBJ)) - -$(LIB_NAME)_MOBJ_PIC:=$(patsubst %.o,%.os,$($(LIB_NAME)_MOBJ)) - -$(LIB_NAME)_SOBJ_PIC:=$(patsubst %.o,%.os,$($(LIB_NAME)_SOBJ)) - -#libso-y+=$(top_builddir)lib/$(LIB_NAME).so -#liba-y+=$(top_builddir)lib/$(LIB_NAME).a -#libclean-y+=$(LIB_NAME)_clean - -$($(LIB_NAME)_OBJ): %.o : %.c - $(compile.c) - -$($(LIB_NAME)_OBJ_PIC): %.os : %.c - $(compile.c) $(PICFLAG) - -$($(LIB_NAME)_MOBJ): $($(LIB_NAME)_MSRC) - $(compile.m) - -$($(LIB_NAME)_MOBJ_PIC): $($(LIB_NAME)_MSRC) - $(compile.m) $(PICFLAG) - -$($(LIB_NAME)_SOBJ): %.o : %.S - $(compile.S) - -$($(LIB_NAME)_SOBJ_PIC): %.os : %.S - $(compile.S) $(PICFLAG) - -# this should be changed to .os after libc/misc/internals/ is done -libc:=$(top_builddir)lib/libc.so -interp:=$(top_builddir)libc/misc/internals/interp.o -ifeq ($(strip $(EXTRA_LINK_LIBS)),) -#EXTRA_LINK_LIBS:=$(interp) -L$(top_builddir)lib -lc $(LDADD_LIBFLOAT) $(LIBGCC) -EXTRA_LINK_LIBS:=$(interp) $(libc) $(LDADD_LIBFLOAT) $(LIBGCC) -endif - -$(top_builddir)lib/$(LIB_NAME).so: $($(LIB_NAME)_DIR)/$(LIB_NAME)_pic.a $(interp) $(libc) - $(INSTALL) -d $(top_builddir)lib - $(RM) $@ $@.$(MAJOR_VERSION) $(top_builddir)lib/$($(LIB_NAME)_FULL_NAME) - $(LD) $(LDFLAGS) $(EXTRA_LINK_OPTS) -soname=$(notdir $@).$(MAJOR_VERSION) \ - -o $(top_builddir)lib/$($(LIB_NAME)_FULL_NAME) $(SHARED_START_FILES) \ - --whole-archive $(firstword $^) --no-whole-archive \ - $(EXTRA_LINK_LIBS) $(SHARED_END_FILES) - $(LN) -sf $($(LIB_NAME)_FULL_NAME) $@.$(MAJOR_VERSION) - $(LN) -sf $($(LIB_NAME)_FULL_NAME) $@ - -$(top_builddir)lib/$(LIB_NAME).so1: $($(LIB_NAME)_OBJ_PIC) $($(LIB_NAME)_MOBJ_PIC) $($(LIB_NAME)_SOBJ_PIC) $($(LIB_NAME)_SO_ADD) - $(INSTALL) -d $(top_builddir)lib - $(RM) $@ $@.$(MAJOR_VERSION) $(top_builddir)lib/$($(LIB_NAME)_FULL_NAME) - $(LD) $(LDFLAGS) $(EXTRA_LINK_OPTS) -soname=$(notdir $@).$(MAJOR_VERSION) \ - -o $(top_builddir)lib/$($(LIB_NAME)_FULL_NAME) $(SHARED_START_FILES) $^ \ - $(EXTRA_LINK_LIBS) $(SHARED_END_FILES) - $(LN) -sf $($(LIB_NAME)_FULL_NAME) $@.$(MAJOR_VERSION) - $(LN) -sf $($(LIB_NAME)_FULL_NAME) $@ - -$($(LIB_NAME)_DIR)/$(LIB_NAME)_pic.a: $($(LIB_NAME)_OBJ_PIC) $($(LIB_NAME)_MOBJ_PIC) $($(LIB_NAME)_SOBJ_PIC) $($(LIB_NAME)_SO_ADD) -ifneq ($(strip $(STRIP_FLAGS)),) - $(STRIPTOOL) $(STRIP_FLAGS) $^ -else - $(STRIPTOOL) -x -R .note -R .comment $^ -endif - $(AR) $(ARFLAGS) $@ $^ - -ifeq ($(DOPIC),y) -$(top_builddir)lib/$(LIB_NAME).a: $($(LIB_NAME)_DIR)/$(LIB_NAME)_pic.a - $(RM) $@ - cp $< $@ -else -$(top_builddir)lib/$(LIB_NAME).a: $($(LIB_NAME)_OBJ) $($(LIB_NAME)_MOBJ) $($(LIB_NAME)_SOBJ) $($(LIB_NAME)_A_ADD) - $(RM) $@ - $(STRIPTOOL) -x -R .note -R .comment $^ - $(AR) $(ARFLAGS) $@ $^ -endif - -$(LIB_NAME)_clean: - rm -f $($(LIB_NAME)_DIR)/*.{o,os,a} - -endif - -include $(top_srcdir)Makerules diff --git a/Makerules b/Makerules index e165bf531..36bee2840 100644 --- a/Makerules +++ b/Makerules @@ -1,34 +1,263 @@ # # Licensed under LGPL v2.1, see the file COPYING.LIB in this tarball for details. # -.SUFFIXES: .c .S .o .os .so .a .s .i -ifndef top_srcdir -top_srcdir=$(CURDIR) -endif +.SUFFIXES: .c .S .o .os .oS .so .a .s .i -ifndef top_builddir -top_builddir=$(CURDIR) +ifeq ($(DOPIC),y) +lib-a-y: $(lib-a-pic-y) +else +lib-a-y: $(lib-a-y) endif +lib-so-y: $(lib-so-y) -top_srcdir:=$(shell echo "$(top_srcdir)/" | sed -e 's://:/:') -top_builddir:=$(shell echo "$(top_builddir)/" | sed -e 's://:/:') - +# order is important, the stripping uses STRIP_FLAGS for lib-so, but not for lib-a ifeq ($(HAVE_SHARED),y) .LIBPATTERNS: "lib%.so" -libs: libso-y liba-y +libs: lib-so-y lib-a-y else .LIBPATTERNS: "lib%.a" -libs: liba-y +libs: lib-a-y endif -libso-y: $(libso-y) -liba-y: $(liba-y) -libclean-y: $(libclean-y) +crt-y: $(crt-y) +other-y: $(other-y) +objclean-y: $(objclean-y) + +lib-multi-y: $(lib-multi-y) +ifeq ($(DOPIC),y) +lib-nomulti-y: $(lib-nomulti-y:.o=.os) +else +lib-nomulti-y: $(lib-nomulti-y) $(lib-nomulti-y:.o=.os) +endif -compile.c=$(CC) -c $< -o $@ $(CPPFLAGS) $(CFLAGS) $(ARCH_CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$@) $(CFLAGS-$<) -compile.S=$(compile.c) $(S_CPPFLAGS) $(ASFLAGS) $(ARCH_ASFLAGS) $(ASFLAGS-$(suffix $@)) $(ASFLAGS-$@) $(ASFLAGS-$<) +libc-nonshared-y: $(libc-nonshared-y) + +$(top_builddir)lib/$(NONSHARED_LIBNAME): $(libc-nonshared-y) + $(INSTALL) -d $(top_builddir)lib + $(AR) $(ARFLAGS) $@ $^ + +compile.c=$(CC) -c $< -o $@ $(CPPFLAGS) $(CFLAGS) $(ARCH_CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(notdir $@)) $(CFLAGS-$(notdir $<)) +compile.S=$(compile.c) $(S_CPPFLAGS) $(ASFLAGS) $(ARCH_ASFLAGS) $(ASFLAGS-$(suffix $@)) $(ASFLAGS-$(notdir $@)) $(ASFLAGS-$(notdir $<)) compile.m=$(compile.c) -DL_$(patsubst %$(suffix $(notdir $@)),%,$(notdir $@)) -.PHONY: clean -clean: libclean-y +#compile.i=$(compile.m) -E + +compile-m=$(CC) $^ -c -o $@ $(CPPFLAGS) $(CFLAGS) $(ARCH_CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(notdir $@)) $(CFLAGS-$(notdir $<)) $(S_CPPFLAGS) $(ASFLAGS) $(ARCH_ASFLAGS) $(ASFLAGS-$(suffix $@)) $(ASFLAGS-$(notdir $@)) $(ASFLAGS-$(notdir $<)) $(CFLAGS-multi-y) + +CFLAGS-.os+=$(PICFLAG) + +%.o: %.c + $(compile.c) + +%.os: %.c + $(compile.c) + +%.oS: %.c + $(compile.c) -DSHARED + +%.o: %.S + $(compile.S) + +%.os: %.S + $(compile.S) + +#ifeq ($(HAVE_ELF),y) +CRT=crt1 +#else +#CRT=crt0.o +#endif + +CRTS=$(top_builddir)lib/$(CRT).o $(top_builddir)lib/S$(CRT).o + +$(top_builddir)lib/$(CRT).o: $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/$(CRT).S + $(INSTALL) -d $(dir $@) + $(compile.S) -DL_$(patsubst %$(suffix $(notdir $@)),%,$(notdir $@)) + $(STRIPTOOL) -x -R .note -R .comment $@ + +$(top_builddir)lib/S$(CRT).o: $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/$(CRT).S + $(INSTALL) -d $(dir $@) + $(compile.S) $(PIEFLAG) -DL_$(patsubst %$(suffix $(notdir $@)),%,$(notdir $@)) + $(STRIPTOOL) -x -R .note -R .comment $@ + +CTOR_TARGETS=$(top_builddir)lib/crti.o $(top_builddir)lib/crtn.o + +ifeq ($(UCLIBC_CTOR_DTOR),y) +$(top_builddir)lib/crti.o: $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/crti.S + $(INSTALL) -d $(dir $@) + $(compile.S) $(PICFLAG) $(SSP_DISABLE_FLAGS) + +$(top_builddir)lib/crtn.o: $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/crtn.S + $(INSTALL) -d $(dir $@) + $(compile.S) $(PICFLAG) $(SSP_DISABLE_FLAGS) +else +$(CTOR_TARGETS): + $(INSTALL) -d $(top_builddir)lib + $(AR) $(ARFLAGS) $@ +endif + +$(crt-y): $(CRTS) $(CTOR_TARGETS) + +.PHONY: clean headers dummy create +clean: objclean-y headers_clean-y +headers: $(headers-y) + +headers_clean-y: $(headers_clean-y) + +ifneq ($(strip $(LIB_NAME)),) + +ifeq ($(strip $($(LIB_NAME)_FULL_NAME)),) +$(LIB_NAME)_FULL_NAME:=$(LIB_NAME)-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so +endif + +ifeq ($(DOPIC),y) +$(LIB_NAME)-a-y: $($(LIB_NAME)-a-pic-y) +else +$(LIB_NAME)-a-y: $($(LIB_NAME)-a-y) +endif +$(LIB_NAME)-so-y: $($(LIB_NAME)-so-y) + +ifeq ($(HAVE_SHARED),y) +objs: $(LIB_NAME)-a-y $(LIB_NAME)-so-y +else +objs: $(LIB_NAME)-a-y +endif + +$($(LIB_NAME)_OUT)/$(LIB_NAME).o $($(LIB_NAME)_OUT)/$(LIB_NAME).os: $($(LIB_NAME)-multi-y) + $(compile-m) + +libc=$(top_builddir)lib/libc.so +interp=$(top_builddir)libc/misc/internals/interp.os +ifeq ($(strip $(EXTRA_LINK_LIBS)),) +#EXTRA_LINK_LIBS:=$(interp) -L$(top_builddir)lib -lc $(LDADD_LIBFLOAT) $(LIBGCC) +EXTRA_LINK_LIBS:=$(interp) $(libc) $(LDADD_LIBFLOAT) $(LIBGCC) +endif + +ifneq ($(strip $(LIB_NAME)),libc) +ifneq ($(strip $(LIB_NAME)),ld-uClibc) +$(top_builddir)lib/$(LIB_NAME).so: $($(LIB_NAME)_OUT)/$(LIB_NAME)_so.a $(interp) $(libc) +else +$(top_builddir)lib/$(LIB_NAME).so: $($(LIB_NAME)_OUT)/$(LIB_NAME)_so.a +endif +else +$(top_builddir)lib/$(LIB_NAME).so: $($(LIB_NAME)_OUT)/$(LIB_NAME)_so.a $(interp) +endif + $(INSTALL) -d $(dir $@) + $(RM) $@ $@.$(MAJOR_VERSION) $(top_builddir)lib/$($(LIB_NAME)_FULL_NAME) + $(LD) $(LDFLAGS) $(EXTRA_LINK_OPTS) -soname=$(notdir $@).$(MAJOR_VERSION) \ + -o $(top_builddir)lib/$($(LIB_NAME)_FULL_NAME) $(SHARED_START_FILES) \ + --whole-archive $(firstword $^) --no-whole-archive \ + $(EXTRA_LINK_LIBS) $(SHARED_END_FILES) + $(LN) -sf $($(LIB_NAME)_FULL_NAME) $@.$(MAJOR_VERSION) +ifneq ($(strip $(LIB_NAME)),libc) +ifneq ($(strip $(LIB_NAME)),ld-uClibc) + $(LN) -sf $($(LIB_NAME)_FULL_NAME) $@ +endif +else + echo "/* GNU ld script" > $@ + echo " * Use the shared library, but some functions are only in" >> $@ + echo " * the static library, so try that secondarily. */" >> $@ +ifeq ($(COMPAT_ATEXIT),y) + echo "GROUP ( $(top_builddir)lib/$(NONSHARED_LIBNAME) $(top_builddir)lib/$(SHARED_MAJORNAME) )" >> $@ +else + echo "GROUP ( $(top_builddir)lib/$(SHARED_MAJORNAME) $(top_builddir)lib/$(NONSHARED_LIBNAME) )" >> $@ +endif +endif + +$(top_builddir)lib/$(LIB_NAME).so.notused: $($(LIB_NAME)-so-y) +ifneq ($(strip $(STRIP_FLAGS)),) + $(STRIPTOOL) $(STRIP_FLAGS) $^ +else + $(STRIPTOOL) -x -R .note -R .comment $^ +endif + $(INSTALL) -d $(dir $@) + $(RM) $@ $@.$(MAJOR_VERSION) $(top_builddir)lib/$($(LIB_NAME)_FULL_NAME) + $(LD) $(LDFLAGS) $(EXTRA_LINK_OPTS) -soname=$(notdir $@).$(MAJOR_VERSION) \ + -o $(top_builddir)lib/$($(LIB_NAME)_FULL_NAME) $(SHARED_START_FILES) $^ \ + $(EXTRA_LINK_LIBS) $(SHARED_END_FILES) + $(LN) -sf $($(LIB_NAME)_FULL_NAME) $@.$(MAJOR_VERSION) +ifneq ($(strip $(LIB_NAME)),libc) + $(LN) -sf $($(LIB_NAME)_FULL_NAME) $@ +else + echo "/* GNU ld script" > $@ + echo " * Use the shared library, but some functions are only in" >> $@ + echo " * the static library, so try that secondarily. */" >> $@ +ifeq ($(COMPAT_ATEXIT),y) + echo "GROUP ( $(top_builddir)lib/$(NONSHARED_LIBNAME) $(top_builddir)lib/$(SHARED_MAJORNAME) )" >> $@ +else + echo "GROUP ( $(top_builddir)lib/$(SHARED_MAJORNAME) $(top_builddir)lib/$(NONSHARED_LIBNAME) )" >> $@ +endif +endif + +ifeq ($(DOMULTI),y) + +$($(LIB_NAME)_OUT)/$(LIB_NAME)_so.a: $($(LIB_NAME)_OUT)/$(LIB_NAME).os $($(LIB_NAME)-nomulti-y:.o=.os) + $(RM) $@ +ifneq ($(strip $(STRIP_FLAGS)),) + $(STRIPTOOL) $(STRIP_FLAGS) $^ +else + $(STRIPTOOL) -x -R .note -R .comment $^ +endif + $(AR) $(ARFLAGS) $@ $^ + +ifeq ($(DOPIC),y) +$(top_builddir)lib/$(LIB_NAME).a: $($(LIB_NAME)_OUT)/$(LIB_NAME).os $($(LIB_NAME)-nomulti-y:.o=.os) +else +$(top_builddir)lib/$(LIB_NAME).a: $($(LIB_NAME)_OUT)/$(LIB_NAME).o $($(LIB_NAME)-nomulti-y) +endif + $(INSTALL) -d $(dir $@) + $(RM) $@ + $(STRIPTOOL) -x -R .note -R .comment $^ + $(AR) $(ARFLAGS) $@ $^ + +else # DOMULTI + +$($(LIB_NAME)_OUT)/$(LIB_NAME)_so.a: $($(LIB_NAME)-so-y) + $(RM) $@ +ifneq ($(strip $(STRIP_FLAGS)),) + $(STRIPTOOL) $(STRIP_FLAGS) $^ +else + $(STRIPTOOL) -x -R .note -R .comment $^ +endif + $(AR) $(ARFLAGS) $@ $^ + +ifeq ($(DOPIC),y) +$(top_builddir)lib/$(LIB_NAME).a: $($(LIB_NAME)-a-pic-y) +else +$(top_builddir)lib/$(LIB_NAME).a: $($(LIB_NAME)-a-y) +endif + $(INSTALL) -d $(dir $@) + $(RM) $@ + $(STRIPTOOL) -x -R .note -R .comment $^ + $(AR) $(ARFLAGS) $@ $^ + +endif # DOMULTI + +$(LIB_NAME)_clean: + rm -f $($(LIB_NAME)_OUT)/*.{o,os,a} + +else # LIB_NAME + +ifeq ($(DOPIC),y) +libc-a-y: $(libc-a-pic-y) +libc-nomulti-y: $(libc-nomulti-y:.o=.os) +else +libc-a-y: $(libc-a-y) +libc-nomulti-y: $(libc-nomulti-y) $(libc-nomulti-y:.o=.os) +endif +libc-so-y: $(libc-so-y) + +libc-multi-y: $(libc-multi-y) + $(compile-m) + +ifeq ($(HAVE_SHARED),y) +objs: libc-a-y libc-so-y crt-y other-y +else +objs: libc-a-y crt-y other-y +endif + +# only for local multi testing +libc.o libc.os: $(libc-multi-y) + $(compile-m) + +endif # LIB_NAME diff --git a/Rules.mak b/Rules.mak index 866febae0..c738a2831 100644 --- a/Rules.mak +++ b/Rules.mak @@ -340,9 +340,10 @@ endif else # psm: the next 2 are probably incorrect, the generic header will # win over the arch specific one -PTINC := -I$(PTDIR)/sysdeps/pthread \ - -I$(PTDIR)/sysdeps/$(TARGET_ARCH) +PTINC := -I$(PTDIR)/sysdeps/$(TARGET_ARCH) \ + -I$(PTDIR)/sysdeps/pthread endif +CFLAGS+=$(PTINC) endif ifeq ($(UCLIBC_BUILD_RELRO),y) diff --git a/extra/scripts/Makefile.libs.lvl1 b/extra/scripts/Makefile.libs.lvl1 new file mode 100644 index 000000000..e1fda52df --- /dev/null +++ b/extra/scripts/Makefile.libs.lvl1 @@ -0,0 +1,13 @@ +# Makefile for uClibc +# +# Licensed under LGPL v2.1, see the file COPYING.LIB in this tarball for details. +# + +TOPDIR=../ + +top_srcdir=$(TOPDIR) +top_builddir=../ +include $(top_builddir)Rules.mak +all: libs +include Makefile.in +include $(top_srcdir)Makerules diff --git a/extra/scripts/Makefile.libs.lvl2 b/extra/scripts/Makefile.libs.lvl2 new file mode 100644 index 000000000..fc3b4f1d0 --- /dev/null +++ b/extra/scripts/Makefile.libs.lvl2 @@ -0,0 +1,13 @@ +# Makefile for uClibc +# +# Licensed under LGPL v2.1, see the file COPYING.LIB in this tarball for details. +# + +TOPDIR=../../ + +top_srcdir=$(TOPDIR) +top_builddir=../../ +include $(top_builddir)Rules.mak +all: libs +include Makefile.in +include $(top_srcdir)Makerules diff --git a/extra/scripts/Makefile.objs.lvl2 b/extra/scripts/Makefile.objs.lvl2 new file mode 100644 index 000000000..8a961e4dc --- /dev/null +++ b/extra/scripts/Makefile.objs.lvl2 @@ -0,0 +1,13 @@ +# Makefile for uClibc +# +# Licensed under LGPL v2.1, see the file COPYING.LIB in this tarball for details. +# + +TOPDIR=../../ + +top_srcdir=$(TOPDIR) +top_builddir=../../ +all: objs +include $(top_builddir)Rules.mak +include Makefile.in +include $(top_srcdir)Makerules diff --git a/extra/scripts/Makefile.objs.lvl3 b/extra/scripts/Makefile.objs.lvl3 new file mode 100644 index 000000000..b78cba738 --- /dev/null +++ b/extra/scripts/Makefile.objs.lvl3 @@ -0,0 +1,13 @@ +# Makefile for uClibc +# +# Licensed under LGPL v2.1, see the file COPYING.LIB in this tarball for details. +# + +TOPDIR=../../../ + +top_srcdir=$(TOPDIR) +top_builddir=../../../ +all: objs +include $(top_builddir)Rules.mak +include Makefile.in +include $(top_srcdir)Makerules diff --git a/extra/scripts/Makefile.objs.lvl4 b/extra/scripts/Makefile.objs.lvl4 new file mode 100644 index 000000000..65a8bf6bf --- /dev/null +++ b/extra/scripts/Makefile.objs.lvl4 @@ -0,0 +1,13 @@ +# Makefile for uClibc +# +# Licensed under LGPL v2.1, see the file COPYING.LIB in this tarball for details. +# + +TOPDIR=../../../../ + +top_srcdir=$(TOPDIR) +top_builddir=../../../../ +all: objs +include $(top_builddir)Rules.mak +include Makefile.in +include $(top_srcdir)Makerules diff --git a/ldso/Makefile.in b/ldso/Makefile.in new file mode 100644 index 000000000..8d3c5fcda --- /dev/null +++ b/ldso/Makefile.in @@ -0,0 +1,45 @@ +# Makefile for uClibc +# +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +DIRS=$(shell if test -f $(top_builddir)lib/libc.so ; then echo "ldso libdl" ; else echo "ldso" ; fi) + +libs: subdirs + +LN_HEADERS := $(patsubst %, include/%, elf.h) +LN_ARCH_HEADERS := $(patsubst %, include/%, dl-startup.h dl-syscalls.h dl-sysdep.h dl-debug.h) +HEADERS := $(LN_HEADERS) $(LN_ARCH_HEADERS) include/dl-progname.h + +headers-y+=ldso_headers + +ldso_headers: $(HEADERS) + +$(LN_HEADERS): + $(LN) -sf $(top_builddir)../$@ $@ + +$(LN_ARCH_HEADERS): + $(LN) -sf ../ldso/$(TARGET_ARCH)/$(patsubst include/%,%,$@) $@ + +include/dl-progname.h: + echo '#include "$(TARGET_ARCH)/elfinterp.c"' > $@ + +headers_clean-y+=ldso_headers_clean + +ldso_headers_clean: + $(RM) $(HEADERS) + +clean: subdirs_clean ldso_headers_clean + +subdirs: $(patsubst %, _dir_%, $(DIRS)) +subdirs_clean: $(patsubst %, _dirclean_%, $(DIRS)) + +$(patsubst %, _dir_%, $(DIRS)): ldso_headers + $(MAKE) -C $(patsubst _dir_%, %, $@) + +$(patsubst %, _dirclean_%, $(DIRS)): dummy + $(MAKE) -C $(patsubst _dirclean_%, %, $@) clean + +.PHONY: dummy diff --git a/ldso/ldso/Makefile.in b/ldso/ldso/Makefile.in index a272e771b..2ba7e2f71 100644 --- a/ldso/ldso/Makefile.in +++ b/ldso/ldso/Makefile.in @@ -1,13 +1,13 @@ # Makefile for uClibc # -# Licensed under LGPL v2.1, see the file COPYING.LIB in this tarball for details. +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. # - -LIB_NAME:=ld-uClibc # psm: I do not know if the order of includes is relevant # to be sure I have put them first -CFLAGS:=-I$(top_srcdir)ldso/include -I. $(CFLAGS) $(PICFLAG) $(SSP_DISABLE_FLAGS) +CFLAGS:=-I$(top_builddir)ldso/include -I. $(CFLAGS) $(PICFLAG) $(SSP_DISABLE_FLAGS) CFLAGS+=-DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" -DUCLIBC_LDSO=\"$(UCLIBC_LDSO)\" @@ -39,21 +39,32 @@ ifeq ($(SUPPORT_LD_DEBUG),y) LDFLAGS:=$(LDFLAGS_NOSTRIP) endif -srcdir=$(top_srcdir)ldso/ldso -$(LIB_NAME)_DIR:=$(top_builddir)ldso/ldso +# useless, only 1 source file +DOMULTI=n + +LIB_NAME:=ld-uClibc -$(LIB_NAME)_SRC:=$(srcdir)/ldso.c +ld-uClibc_DIR:=$(top_srcdir)ldso/ldso +ld-uClibc_OUT:=$(top_builddir)ldso/ldso -$(LIB_NAME)_SSRC:=$(wildcard $(srcdir)/$(TARGET_ARCH)/*.S) -$(LIB_NAME)_SOBJ:=$(patsubst $(srcdir)/$(TARGET_ARCH)/%.S,$($(LIB_NAME)_DIR)/$(TARGET_ARCH)/%.o,$($(LIB_NAME)_SSRC)) +ld-uClibc_SRC:=$(ld-uClibc_DIR)/ldso.c +ld-uClibc_OBJ:=$(patsubst $(ld-uClibc_DIR)/%.c,$(ld-uClibc_OUT)/%.o,$(ld-uClibc_SRC)) + +ld-uClibc_SSRC:=$(wildcard $(ld-uClibc_DIR)/$(TARGET_ARCH)/*.S) +ld-uClibc_SOBJ:=$(patsubst $(ld-uClibc_DIR)/$(TARGET_ARCH)/%.S,$(ld-uClibc_OUT)/$(TARGET_ARCH)/%.o,$(ld-uClibc_SSRC)) + +ld-uClibc_OBJS:=$(ld-uClibc_OBJ) $(ld-uClibc_SOBJ) EXTRA_LINK_OPTS:=-e _start -z now -Bsymbolic --export-dynamic --sort-common --discard-locals --discard-all --no-undefined EXTRA_LINK_LIBS:=$(LIBGCC) # $(LDADD_LIBFLOAT) -libso-$(HAVE_SHARED)+=$(top_builddir)lib/$(LIB_NAME).so -libclean-y+=$(LIB_NAME)_clean $(LIB_NAME)_arch_clean +ld-uClibc-so-$(HAVE_SHARED):=$(ld-uClibc_OBJS:.o=.os) + +#ld-uClibc-multi-$(HAVE_SHARED):=$(ld-uClibc_SRC) + +objclean-y+=ld-uClibc_clean ld-uClibc_arch_clean -$(LIB_NAME)_arch_clean: - $(RM) $($(LIB_NAME)_DIR)/*/*.{o,os} +ld-uClibc_arch_clean: + $(RM) $(ld-uClibc_OUT)/*/*.{o,os} -include $(top_srcdir)Makefile.libs +lib-so-$(HAVE_SHARED)+=$(top_builddir)lib/ld-uClibc.so diff --git a/ldso/libdl/Makefile.in b/ldso/libdl/Makefile.in index 389484e9b..24a53422e 100644 --- a/ldso/libdl/Makefile.in +++ b/ldso/libdl/Makefile.in @@ -1,12 +1,13 @@ # Makefile.in for uClibc # -# Licensed under LGPL v2.1, see the file COPYING.LIB in this tarball for details. +# Copyright (C) 2000 by Lineo, inc. +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. # - -LIB_NAME:=libdl # psm: I do not know if the order of includes is relevant -# to be sure I added them first +# to be sure I added them first, Jocke please cleanup if needed CFLAGS:=-I$(top_builddir)ldso/include -I$(top_builddir)ldso/ldso $(CFLAGS) $(SSP_ALL_CFLAGS) CFLAGS+=-DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" @@ -20,33 +21,39 @@ ifeq ($(TARGET_ARCH),mips) CFLAGS:=$(CFLAGS:-O0=-O1) endif -CFLAGS-.os=-DSHARED -# we adapt CFLAGS, because libdl.a has an additional object -ifeq ($(DOPIC),y) -CFLAGS-.o=$(PICFLAG) -resolv:=$(top_builddir)ldso/ldso/$(TARGET_ARCH)/resolve.os -else -resolv:=$(top_builddir)ldso/ldso/$(TARGET_ARCH)/resolve.o -endif +# useless, only 1 source file +DOMULTI=n + +LIB_NAME:=libdl EXTRA_LINK_OPTS:=-fini dl_cleanup +# keep in sync w/ Makerules +EXTRA_LINK_LIBS:=$(top_builddir)libc/misc/internals/interp.os $(top_builddir)lib/libc.so $(LIBGCC) $(top_builddir)lib/$(UCLIBC_LDSO) + +libdl_DIR:=$(top_srcdir)ldso/libdl +libdl_OUT:=$(top_builddir)ldso/libdl + +libdl_SRC:=$(libdl_DIR)/libdl.c +libdl_OBJ:=$(patsubst $(libdl_DIR)/%.c,$(libdl_OUT)/%.o,$(libdl_SRC)) -# we need for all cases a "full" libdl.a the pic version used to build libdl.so misses $(resolv) -# because it is linked against ld.so -DOPIC=n +# use other suffixes, so that it does not pick up the multi rule from Makerules +$(libdl_OUT)/libdl.oS: $(libdl_DIR)/libdl.c + $(compile.c) -DSHARED -srcdir=$(top_srcdir)ldso/$(LIB_NAME) -$(LIB_NAME)_DIR:=$(top_builddir)ldso/$(LIB_NAME) +resolve:=$(top_builddir)ldso/ldso/$(TARGET_ARCH)/resolve.o -$(LIB_NAME)_SRC:=$(srcdir)/libdl.c +libdl-a-$(HAVE_SHARED):=$(libdl_OBJ) $(resolve) +libdl-a-pic-$(HAVE_SHARED):=$(libdl_OBJ:.o=.os) $(resolve:.o=.os) +libdl-so-$(HAVE_SHARED):=$(libdl_OBJ:.o=.oS) -$(LIB_NAME)_A_ADD:=$(resolv) +# we enable this although no use of multi, else libdl.o gets empty sources +libdl-multi-$(HAVE_SHARED):=$(libdl_SRC) -libso-$(HAVE_SHARED)+=$(top_builddir)lib/$(LIB_NAME).so -liba-$(HAVE_SHARED)+=$(top_builddir)lib/$(LIB_NAME).a -libclean-y+=$(LIB_NAME)_clean +objclean-y+=libdl_clean libdl_extra_clean -include $(top_srcdir)Makefile.libs +libdl_extra_clean: + $(RM) $(libdl_OUT)/*.oS -# !!! these lines have to come after including Makefile.libs !!! -EXTRA_LINK_LIBS+=$(top_builddir)lib/$(UCLIBC_LDSO) +lib-a-$(HAVE_SHARED)+=$(top_builddir)lib/libdl.a +lib-a-pic-$(HAVE_SHARED)+=$(top_builddir)lib/libdl.a +lib-so-$(HAVE_SHARED)+=$(top_builddir)lib/libdl.so diff --git a/libc/Makefile.in b/libc/Makefile.in new file mode 100644 index 000000000..33a1070d9 --- /dev/null +++ b/libc/Makefile.in @@ -0,0 +1,57 @@ +# Makefile for uClibc +# +# Copyright (C) 2000 by Lineo, inc. +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +DOMULTI=n + +# we have SHARED_MAJORNAME=libc.so.$(MAJOR_VERSION) defined in Rules.mak +LIB_NAME:=libc + +libc_DIR:=$(top_srcdir)libc +libc_OUT:=$(top_builddir)libc + +libc_FULL_NAME:=libuClibc-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so + +#DIRS:=misc pwd_grp stdio string termios inet signal stdlib sysdeps unistd + +# this comes first, so duplicate removal works correctly +include $(libc_DIR)/sysdeps/Makefile.in + +include $(libc_DIR)/misc/Makefile.in +include $(libc_DIR)/pwd_grp/Makefile.in +include $(libc_DIR)/stdio/Makefile.in +include $(libc_DIR)/string/Makefile.in +include $(libc_DIR)/termios/Makefile.in +include $(libc_DIR)/inet/Makefile.in +include $(libc_DIR)/signal/Makefile.in +include $(libc_DIR)/stdlib/Makefile.in +include $(libc_DIR)/unistd/Makefile.in + +# Check if the target architecture has a version script for +# libc, and if so, include it when linking. +VERSION_SCRIPT:=${shell if [ -f $(libc_DIR)/sysdeps/linux/$(TARGET_ARCH)/libc.map ] ; then \ + echo "--version-script $(libc_DIR)/sysdeps/linux/$(TARGET_ARCH)/libc.map"; fi} + +EXTRA_LINK_OPTS:=$(VERSION_SCRIPT) -init __uClibc_init +EXTRA_LINK_LIBS:=$(libc_OUT)/misc/internals/interp.os $(top_builddir)lib/$(UCLIBC_LDSO) $(LIBGCC) # $(LDADD_LIBFLOAT) + +ifeq ($(DOPIC),y) +libc-a-y: $(libc-a-pic-y) +else +libc-a-y: $(libc-a-y) +endif + +libc-so-y: $(libc-so-y) + +crt-y: $(crt-y) +other-y: $(other-y) + +objclean-y+=libc_clean + +lib-a-y+=$(top_builddir)lib/libc.a +lib-a-pic-y+=$(top_builddir)lib/libc.a +lib-so-y+=$(top_builddir)lib/libc.so $(top_builddir)lib/$(NONSHARED_LIBNAME) crt-y diff --git a/libc/inet/Makefile.in b/libc/inet/Makefile.in new file mode 100644 index 000000000..0b5ea7cc3 --- /dev/null +++ b/libc/inet/Makefile.in @@ -0,0 +1,72 @@ +# Makefile for uClibc +# +# Copyright (C) 2000 by Lineo, inc. +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +include $(top_srcdir)libc/inet/rpc/Makefile.in + +CSRC:= getservice.c getproto.c hostid.c getnetent.c getnetbynm.c getnetbyad.c \ + inet_net.c ntop.c herror.c if_nametoindex.c gai_strerror.c getaddrinfo.c \ + in6_addr.c ether_addr.c ntohl.c + +MSRC1:= addr.c +MOBJ1:= inet_aton.o inet_addr.o inet_ntoa.o inet_makeaddr.o inet_lnaof.o \ + inet_netof.o + +MSRC2:= resolv.c +MOBJ2:= encodeh.o decodeh.o encoded.o decoded.o lengthd.o encodeq.o \ + decodeq.o lengthq.o encodea.o decodea.o encodep.o decodep.o \ + formquery.o dnslookup.o resolveaddress.o opennameservers.o \ + closenameservers.o resolvename.o gethostbyname.o res_init.o \ + res_query.o gethostbyaddr.o read_etc_hosts_r.o get_hosts_byname_r.o \ + get_hosts_byaddr_r.o gethostbyname2.o getnameinfo.o gethostent.o \ + gethostbyname_r.o gethostbyname2_r.o gethostbyaddr_r.o \ + res_comp.o ns_name.o + +MSRC3:= socketcalls.c +MOBJ3:= accept.o bind.o connect.o getpeername.o getsockname.o getsockopt.o \ + listen.o recv.o recvfrom.o recvmsg.o send.o sendmsg.o sendto.o \ + setsockopt.o shutdown.o socket.o socketpair.o + +INET_DIR:=$(top_srcdir)libc/inet +INET_OUT:=$(top_builddir)libc/inet + +INET_SRC:=$(patsubst %.c,$(INET_DIR)/%.c,$(CSRC)) +INET_OBJ:=$(patsubst %.c,$(INET_OUT)/%.o,$(CSRC)) + +INET_MSRC1:=$(INET_DIR)/$(MSRC1) +INET_MSRC2:=$(INET_DIR)/$(MSRC2) +INET_MSRC3:=$(INET_DIR)/$(MSRC3) +INET_MOBJ1:=$(patsubst %.o,$(INET_OUT)/%.o,$(MOBJ1)) +INET_MOBJ2:=$(patsubst %.o,$(INET_OUT)/%.o,$(MOBJ2)) +INET_MOBJ3:=$(patsubst %.o,$(INET_OUT)/%.o,$(MOBJ3)) + +INET_MSRC:=$(INET_MSRC1) $(INET_MSRC2) $(INET_MSRC3) +INET_MOBJ:=$(INET_MOBJ1) $(INET_MOBJ2) $(INET_MOBJ3) +INET_DEF:=$(patsubst %,-DL_%,$(subst .o,,$(notdir $(INET_MOBJ)))) + +INET_OBJS:=$(INET_OBJ) $(INET_MOBJ) + +$(INET_MOBJ1) $(INET_MOBJ1:.o=.os): $(INET_MSRC1) + $(compile.m) + +$(INET_MOBJ2) $(INET_MOBJ2:.o=.os): $(INET_MSRC2) + $(compile.m) + +$(INET_MOBJ3) $(INET_MOBJ3:.o=.os): $(INET_MSRC3) + $(compile.m) + +libc-a-y+=$(INET_OBJS) +libc-a-pic-y+=$(INET_OBJS:.o=.os) +libc-so-y+=$(INET_OBJS:.o=.os) + +CFLAGS-multi-y+=$(INET_DEF) +libc-multi-y+=$(INET_SRC) $(INET_MSRC) + +objclean-y+=inet_objclean + +inet_objclean: + $(RM) $(INET_OUT)/*.{o,os} diff --git a/libc/inet/rpc/Makefile.in b/libc/inet/rpc/Makefile.in new file mode 100644 index 000000000..08f4eeca2 --- /dev/null +++ b/libc/inet/rpc/Makefile.in @@ -0,0 +1,50 @@ +# Makefile for uClibc +# +# Copyright (C) 2000 by Lineo, inc. +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +ifeq ($(UCLIBC_HAS_FULL_RPC),y) +CSRC:= auth_none.c auth_unix.c authunix_prot.c bindresvport.c \ + clnt_generic.c clnt_perror.c clnt_raw.c clnt_simple.c clnt_tcp.c \ + clnt_udp.c rpc_dtablesize.c get_myaddress.c getrpcent.c getrpcport.c \ + pmap_clnt.c pmap_getmaps.c pmap_getport.c pmap_prot.c \ + pmap_prot2.c pmap_rmt.c rpc_prot.c rpc_commondata.c rpc_callmsg.c \ + svc.c svc_auth.c svc_auth_unix.c svc_raw.c svc_run.c svc_simple.c \ + svc_tcp.c svc_udp.c xdr.c xdr_array.c xdr_float.c xdr_mem.c \ + xdr_rec.c xdr_reference.c xdr_stdio.c \ + rtime.c clnt_unix.c svc_unix.c create_xid.c xdr_intXX_t.c rcmd.c \ + rexec.c sa_len.c ruserpass.c rpc_thread.c +else +# For now, only compile the stuff needed to do an NFS mount.... +CSRC:= create_xid.c pmap_clnt.c pmap_getmaps.c pmap_getport.c \ + pmap_prot.c pmap_prot2.c clnt_simple.c clnt_perror.c \ + clnt_tcp.c clnt_udp.c bindresvport.c authunix_prot.c \ + auth_none.c auth_unix.c xdr.c xdr_array.c xdr_rec.c \ + xdr_reference.c xdr_mem.c svc.c svc_auth.c svc_auth_unix.c \ + rpc_callmsg.c rpc_prot.c rpc_dtablesize.c rpc_commondata.c \ + rpc_thread.c rcmd.c rexec.c sa_len.c ruserpass.c rtime.c \ + getrpcent.c +endif + +INET_RPC_DIR:=$(top_srcdir)libc/inet/rpc +INET_RPC_OUT:=$(top_builddir)libc/inet/rpc + +INET_RPC_NO_MULTI:=rpc_commondata.c rpc_thread.c svc.c + +INET_RPC_SRC:=$(patsubst %.c,$(INET_RPC_DIR)/%.c,$(CSRC)) +INET_RPC_OBJ:=$(patsubst %.c,$(INET_RPC_OUT)/%.o,$(CSRC)) + +libc-a-$(UCLIBC_HAS_RPC)+=$(INET_RPC_OBJ) +libc-a-pic-$(UCLIBC_HAS_RPC)+=$(INET_RPC_OBJ:.o=.os) +libc-so-$(UCLIBC_HAS_RPC)+=$(INET_RPC_OBJ:.o=.os) + +libc-multi-$(UCLIBC_HAS_RPC)+=$(filter-out $(patsubst %.c,$(INET_RPC_DIR)/%.c,$(INET_RPC_NO_MULTI)),$(INET_RPC_SRC)) +libc-nomulti-$(UCLIBC_HAS_RPC)+=$(patsubst %.c,$(INET_RPC_OUT)/%.o,$(INET_RPC_NO_MULTI)) + +objclean-y+=inet_rpc_objclean + +inet_rpc_objclean: + $(RM) $(INET_RPC_OUT)/*.{o,os} diff --git a/libc/misc/Makefile.in b/libc/misc/Makefile.in new file mode 100644 index 000000000..f9331c9dd --- /dev/null +++ b/libc/misc/Makefile.in @@ -0,0 +1,36 @@ +# Makefile for uClibc +# +# Copyright (C) 2000 by Lineo, inc. +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +#DIRS:=assert ctype dirent error file fnmatch ftw glob gnu internals intl locale mntent \ +# pthread regex search statfs syslog sysvipc time ttyent utmp wchar wctype wordexp + +include $(top_srcdir)libc/misc/assert/Makefile.in +include $(top_srcdir)libc/misc/ctype/Makefile.in +include $(top_srcdir)libc/misc/dirent/Makefile.in +include $(top_srcdir)libc/misc/error/Makefile.in +include $(top_srcdir)libc/misc/file/Makefile.in +include $(top_srcdir)libc/misc/fnmatch/Makefile.in +include $(top_srcdir)libc/misc/ftw/Makefile.in +include $(top_srcdir)libc/misc/glob/Makefile.in +include $(top_srcdir)libc/misc/gnu/Makefile.in +include $(top_srcdir)libc/misc/internals/Makefile.in +include $(top_srcdir)libc/misc/intl/Makefile.in +include $(top_srcdir)libc/misc/locale/Makefile.in +include $(top_srcdir)libc/misc/mntent/Makefile.in +include $(top_srcdir)libc/misc/pthread/Makefile.in +include $(top_srcdir)libc/misc/regex/Makefile.in +include $(top_srcdir)libc/misc/search/Makefile.in +include $(top_srcdir)libc/misc/statfs/Makefile.in +include $(top_srcdir)libc/misc/syslog/Makefile.in +include $(top_srcdir)libc/misc/sysvipc/Makefile.in +include $(top_srcdir)libc/misc/time/Makefile.in +include $(top_srcdir)libc/misc/ttyent/Makefile.in +include $(top_srcdir)libc/misc/utmp/Makefile.in +include $(top_srcdir)libc/misc/wchar/Makefile.in +include $(top_srcdir)libc/misc/wctype/Makefile.in +include $(top_srcdir)libc/misc/wordexp/Makefile.in diff --git a/libc/misc/assert/Makefile.in b/libc/misc/assert/Makefile.in new file mode 100644 index 000000000..6fbdcb72a --- /dev/null +++ b/libc/misc/assert/Makefile.in @@ -0,0 +1,26 @@ +# Makefile for uClibc +# +# Copyright (C) 2000 by Lineo, inc. +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +CSRC:=__assert.c + +MISC_ASSERT_DIR:=$(top_srcdir)libc/misc/assert +MISC_ASSERT_OUT:=$(top_builddir)libc/misc/assert + +MISC_ASSERT_SRC:=$(MISC_ASSERT_DIR)/__assert.c +MISC_ASSERT_OBJ:=$(MISC_ASSERT_OUT)/__assert.o + +libc-a-y+=$(MISC_ASSERT_OBJ) +libc-a-pic-y+=$(MISC_ASSERT_OBJ:.o=.os) +libc-so-y+=$(MISC_ASSERT_OBJ:.o=.os) + +libc-multi-y+=$(MISC_ASSERT_SRC) + +objclean-y+=misc_assert_objclean + +misc_assert_objclean: + $(RM) $(MISC_ASSERT_OUT)/*.{o,os} diff --git a/libc/misc/ctype/Makefile.in b/libc/misc/ctype/Makefile.in new file mode 100644 index 000000000..f9f1bfbed --- /dev/null +++ b/libc/misc/ctype/Makefile.in @@ -0,0 +1,56 @@ +# Makefile for uClibc +# +# Copyright (C) 2000 by Lineo, inc. +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +MSRC:=ctype.c +MOBJ:= isalnum.o isalpha.o isascii.o iscntrl.o isdigit.o \ + isgraph.o islower.o isprint.o ispunct.o isspace.o \ + isupper.o isxdigit.o toascii.o tolower.o toupper.o \ + isblank.o isxlower.o isxupper.o + +ifeq ($(UCLIBC_HAS_CTYPE_TABLES),y) +MOBJ+= __C_ctype_b.o __C_ctype_tolower.o __C_ctype_toupper.o \ + __ctype_b_loc.o __ctype_tolower_loc.o __ctype_toupper_loc.o \ + __ctype_assert.o isctype.o +endif + +MOBJx= isalnum_l.o isalpha_l.o isascii_l.o iscntrl_l.o isdigit_l.o \ + isgraph_l.o islower_l.o isprint_l.o ispunct_l.o isspace_l.o \ + isupper_l.o isxdigit_l.o toascii_l.o tolower_l.o toupper_l.o \ + isblank_l.o # isxlower_l.o isxupper_l.o + +MISC_CTYPE_DIR:=$(top_srcdir)libc/misc/ctype +MISC_CTYPE_OUT:=$(top_builddir)libc/misc/ctype + +MISC_CTYPE_MSRC:=$(MISC_CTYPE_DIR)/$(MSRC) +MISC_CTYPE_MOBJ:=$(patsubst %.o,$(MISC_CTYPE_OUT)/%.o,$(MOBJ)) +MISC_CTYPE_MOBJx=$(patsubst %.o,$(MISC_CTYPE_OUT)/%.o,$(MOBJx)) + +# adapt this if MOBJx is done for multi +MISC_CTYPE_DEF:=$(patsubst %,-DL_%,$(subst .o,,$(notdir $(MISC_CTYPE_MOBJ)))) + +$(MISC_CTYPE_MOBJ) $(MISC_CTYPE_MOBJ:.o=.os): $(MISC_CTYPE_MSRC) + $(compile.m) + +$(MISC_CTYPE_MOBJx) $(MISC_CTYPE_MOBJx:.o=.os): $(MISC_CTYPE_MSRC) + $(compile.m) -D__UCLIBC_DO_XLOCALE + +libc-a-y+=$(MISC_CTYPE_MOBJ) +libc-a-$(UCLIBC_HAS_XLOCALE)+=$(MISC_CTYPE_MOBJx) +libc-a-pic-y+=$(MISC_CTYPE_MOBJ:.o=.os) +libc-a-pic-$(UCLIBC_HAS_XLOCALE)+=$(MISC_CTYPE_MOBJx:.o=.os) +libc-so-y+=$(MISC_CTYPE_MOBJ:.o=.os) +libc-so-$(UCLIBC_HAS_XLOCALE)+=$(MISC_CTYPE_MOBJx:.o=.os) + +CFLAGS-multi-y+=$(MISC_CTYPE_DEF) +libc-multi-y+=$(MISC_CTYPE_MSRC) +libc-nomulti-$(UCLIBC_HAS_XLOCALE)+=$(MISC_CTYPE_MOBJx) + +objclean-y+=misc_ctype_objclean + +misc_ctype_objclean: + $(RM) $(MISC_CTYPE_OUT)/*.{o,os} diff --git a/libc/misc/dirent/Makefile.in b/libc/misc/dirent/Makefile.in new file mode 100644 index 000000000..8ba28cdeb --- /dev/null +++ b/libc/misc/dirent/Makefile.in @@ -0,0 +1,28 @@ +# Makefile for uClibc +# +# Copyright (C) 2001 by Lineo, inc. +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +CSRC:= alphasort.c closedir.c dirfd.c opendir.c readdir.c rewinddir.c scandir.c \ + seekdir.c telldir.c readdir64.c alphasort64.c scandir64.c readdir_r.c \ + readdir64_r.c + +MISC_DIRENT_DIR:=$(top_srcdir)libc/misc/dirent +MISC_DIRENT_OUT:=$(top_builddir)libc/misc/dirent + +MISC_DIRENT_SRC:=$(patsubst %.c,$(MISC_DIRENT_DIR)/%.c,$(CSRC)) +MISC_DIRENT_OBJ:=$(patsubst %.c,$(MISC_DIRENT_OUT)/%.o,$(CSRC)) + +libc-a-y+=$(MISC_DIRENT_OBJ) +libc-a-pic-y+=$(MISC_DIRENT_OBJ:.o=.os) +libc-so-y+=$(MISC_DIRENT_OBJ:.o=.os) + +libc-multi-y+=$(MISC_DIRENT_SRC) + +objclean-y+=misc_dirent_objclean + +misc_dirent_objclean: + $(RM) $(MISC_DIRENT_OUT)/*.{o,os} diff --git a/libc/misc/error/Makefile.in b/libc/misc/error/Makefile.in new file mode 100644 index 000000000..86bf881fa --- /dev/null +++ b/libc/misc/error/Makefile.in @@ -0,0 +1,25 @@ +# Makefile for uClibc +# +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +CSRC:=error.c err.c + +MISC_ERROR_DIR:=$(top_srcdir)libc/misc/error +MISC_ERROR_OUT:=$(top_builddir)libc/misc/error + +MISC_ERROR_SRC:=$(patsubst %.c,$(MISC_ERROR_DIR)/%.c,$(CSRC)) +MISC_ERROR_OBJ:=$(patsubst %.c,$(MISC_ERROR_OUT)/%.o,$(CSRC)) + +libc-a-y+=$(MISC_ERROR_OBJ) +libc-a-pic-y+=$(MISC_ERROR_OBJ:.o=.os) +libc-so-y+=$(MISC_ERROR_OBJ:.o=.os) + +libc-multi-y+=$(MISC_ERROR_SRC) + +objclean-y+=misc_error_objclean + +misc_error_objclean: + $(RM) $(MISC_ERROR_OUT)/*.{o,os} diff --git a/libc/misc/file/Makefile.in b/libc/misc/file/Makefile.in new file mode 100644 index 000000000..76eff7868 --- /dev/null +++ b/libc/misc/file/Makefile.in @@ -0,0 +1,27 @@ +# Makefile for uClibc +# +# Copyright (C) 2000 by Lineo, inc. +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +MISC_FILE_DIR:=$(top_srcdir)libc/misc/file +MISC_FILE_OUT:=$(top_builddir)libc/misc/file + +MISC_FILE_SRC:=$(wildcard $(MISC_FILE_DIR)/*.c) +ifneq ($(UCLIBC_HAS_LFS),y) +MISC_FILE_SRC:=$(filter-out $(MISC_FILE_DIR)/lockf64.c,$(MISC_FILE_SRC)) +endif +MISC_FILE_OBJ:=$(patsubst $(MISC_FILE_DIR)/%.c,$(MISC_FILE_OUT)/%.o,$(MISC_FILE_SRC)) + +libc-a-y+=$(MISC_FILE_OBJ) +libc-a-pic-y+=$(MISC_FILE_OBJ:.o=.os) +libc-so-y+=$(MISC_FILE_OBJ:.o=.os) + +libc-multi-y+=$(MISC_FILE_SRC) + +objclean-y+=misc_file_objclean + +misc_file_objclean: + $(RM) $(MISC_FILE_OUT)/*.{o,os} diff --git a/libc/misc/fnmatch/Makefile.in b/libc/misc/fnmatch/Makefile.in new file mode 100644 index 000000000..24019dede --- /dev/null +++ b/libc/misc/fnmatch/Makefile.in @@ -0,0 +1,24 @@ +# Makefile for uClibc +# +# Copyright (C) 2000 by Lineo, inc. +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +MISC_FNMATCH_DIR:=$(top_srcdir)libc/misc/fnmatch +MISC_FNMATCH_OUT:=$(top_builddir)libc/misc/fnmatch + +MISC_FNMATCH_SRC:=$(MISC_FNMATCH_DIR)/fnmatch.c +MISC_FNMATCH_OBJ:=$(MISC_FNMATCH_OUT)/fnmatch.o + +libc-a-y+=$(MISC_FNMATCH_OBJ) +libc-a-pic-y+=$(MISC_FNMATCH_OBJ:.o=.os) +libc-so-y+=$(MISC_FNMATCH_OBJ:.o=.os) + +libc-multi-y+=$(MISC_FNMATCH_SRC) + +objclean-y+=misc_fnmatch_objclean + +misc_fnmatch_objclean: + $(RM) $(MISC_FNMATCH_OUT)/*.{o,os} diff --git a/libc/misc/ftw/Makefile.in b/libc/misc/ftw/Makefile.in new file mode 100644 index 000000000..2f92ef0ec --- /dev/null +++ b/libc/misc/ftw/Makefile.in @@ -0,0 +1,38 @@ +# Makefile for uClibc +# +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +MSRC:=ftw.c +MOBJ:=ftw.o ftw64.o + +MISC_FTW_DIR:=$(top_srcdir)libc/misc/ftw +MISC_FTW_OUT:=$(top_builddir)libc/misc/ftw + +# ftw.c has to be rewritten to allow multi +MISC_FTW_NO_MULTI:=ftw64.o +MOBJ:=$(filter-out $(MISC_FTW_NO_MULTI),$(MOBJ)) + +MISC_FTW_MSRC:=$(MISC_FTW_DIR)/$(MSRC) +MISC_FTW_MOBJ:=$(patsubst %.o,$(MISC_FTW_OUT)/%.o,$(MOBJ)) +MISC_FTW_DEF:=$(patsubst %,-DL_%,$(subst .o,,$(notdir $(MISC_FTW_MOBJ)))) + +MISC_FTW_OBJS:=$(MISC_FTW_MOBJ) $(MISC_FTW_OUT)/$(MISC_FTW_NO_MULTI) + +$(MISC_FTW_OBJS) $(MISC_FTW_OBJS:.o=.os): $(MISC_FTW_MSRC) + $(compile.m) + +libc-a-$(UCLIBC_HAS_FTW)+=$(MISC_FTW_OBJS) +libc-a-pic-$(UCLIBC_HAS_FTW)+=$(MISC_FTW_OBJS:.o=.os) +libc-so-$(UCLIBC_HAS_FTW)+=$(MISC_FTW_OBJS:.o=.os) + +CFLAGS-multi-$(UCLIBC_HAS_FTW)+=$(MISC_FTW_DEF) +libc-multi-$(UCLIBC_HAS_FTW)+=$(MISC_FTW_MSRC) +libc-nomulti-$(UCLIBC_HAS_FTW)+=$(MISC_FTW_OUT)/$(MISC_FTW_NO_MULTI) + +objclean-y+=misc_ftw_objclean + +misc_ftw_objclean: + $(RM) $(MISC_FTW_OUT)/*.{o,os} diff --git a/libc/misc/glob/Makefile.in b/libc/misc/glob/Makefile.in new file mode 100644 index 000000000..c17086fde --- /dev/null +++ b/libc/misc/glob/Makefile.in @@ -0,0 +1,30 @@ +# Makefile for uClibc +# +# Copyright (C) 2000 by Lineo, inc. +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +CSRC:=glob.c glob64.c glob-hooks.c + +MISC_GLOB_DIR:=$(top_srcdir)libc/misc/glob +MISC_GLOB_OUT:=$(top_builddir)libc/misc/glob + +MISC_GLOB_SRC:=$(patsubst %.c,$(MISC_GLOB_DIR)/%.c,$(CSRC)) +MISC_GLOB_OBJ:=$(patsubst %.c,$(MISC_GLOB_OUT)/%.o,$(CSRC)) + +$(MISC_GLOB_OUT)/glob64.o $(MISC_GLOB_OUT)/glob64.os: $(MISC_GLOB_DIR)/glob64.c $(MISC_GLOB_DIR)/glob.c + +libc-a-$(UCLIBC_HAS_GLOB)+=$(MISC_GLOB_OBJ) +libc-a-pic-$(UCLIBC_HAS_GLOB)+=$(MISC_GLOB_OBJ:.o=.os) +libc-so-$(UCLIBC_HAS_GLOB)+=$(MISC_GLOB_OBJ:.o=.os) + +# glob has to be rewritten to allow multi +#libc-multi-$(UCLIBC_HAS_GLOB)+=$(MISC_GLOB_SRC) +libc-nomulti-$(UCLIBC_HAS_GLOB)+=$(MISC_GLOB_OBJ) + +objclean-y+=misc_glob_objclean + +misc_glob_objclean: + $(RM) $(MISC_GLOB_OUT)/*.{o,os} diff --git a/libc/misc/gnu/Makefile.in b/libc/misc/gnu/Makefile.in new file mode 100644 index 000000000..263b45713 --- /dev/null +++ b/libc/misc/gnu/Makefile.in @@ -0,0 +1,26 @@ +# Makefile for uClibc +# +# Copyright (C) 2000 by Lineo, inc. +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +CSRC:=obstack.c + +MISC_GNU_DIR:=$(top_srcdir)libc/misc/gnu +MISC_GNU_OUT:=$(top_builddir)libc/misc/gnu + +MISC_GNU_SRC:=$(MISC_GNU_DIR)/obstack.c +MISC_GNU_OBJ:=$(MISC_GNU_OUT)/obstack.o + +libc-a-y+=$(MISC_GNU_OBJ) +libc-a-pic-y+=$(MISC_GNU_OBJ:.o=.os) +libc-so-y+=$(MISC_GNU_OBJ:.o=.os) + +libc-multi-y+=$(MISC_GNU_SRC) + +objclean-y+=misc_gnu_objclean + +misc_gnu_objclean: + $(RM) $(MISC_GNU_OUT)/*.{o,os} diff --git a/libc/misc/internals/Makefile.in b/libc/misc/internals/Makefile.in new file mode 100644 index 000000000..de611323e --- /dev/null +++ b/libc/misc/internals/Makefile.in @@ -0,0 +1,41 @@ +# Makefile for uClibc +# +# Copyright (C) 2000 by Lineo, inc. +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +CFLAGS-__uClibc_main.c=$(SSP_DISABLE_FLAGS) + +CSRC:=__uClibc_main.c tempname.c errno.c __errno_location.c __h_errno_location.c + +MISC_INTERNALS_DIR:=$(top_srcdir)libc/misc/internals +MISC_INTERNALS_OUT:=$(top_builddir)libc/misc/internals + +MISC_INTERNALS_SRC:=$(patsubst %.c,$(MISC_INTERNALS_DIR)/%.c,$(CSRC)) +MISC_INTERNALS_OBJ:=$(patsubst %.c,$(MISC_INTERNALS_OUT)/%.o,$(CSRC)) + +MISC_INTERNALS_OBJS:=$(MISC_INTERNALS_OBJ) $(MISC_INTERNALS_OUT)/static.o + +$(MISC_INTERNALS_OUT)/interp.c: $(MISC_INTERNALS_DIR)/Makefile.in + echo "/* Force shared libraries to know about the correct library loader */" > $@ + echo "#include " >> $@ + echo "#ifdef __HAVE_ELF__" >> $@ + echo "const char __dl_ldso__[] __attribute__ ((section " \ + "(\".interp\"))) =\""$(SHARED_LIB_LOADER_PREFIX)/$(UCLIBC_LDSO)"\";" >> $@ + echo "#endif" >> $@ + +libc-a-y+=$(MISC_INTERNALS_OBJS) +libc-a-pic-y+=$(MISC_INTERNALS_OBJS:.o=.os) +# this is OBJ, not OBJS !!!, static does not go into .so +libc-so-y+=$(MISC_INTERNALS_OBJ:.o=.os) +other-y+=$(MISC_INTERNALS_OUT)/interp.os + +libc-multi-y+=$(filter-out $(MISC_INTERNALS_DIR)/__uClibc_main.c,$(MISC_INTERNALS_SRC)) +libc-nomulti-y+=$(MISC_INTERNALS_OUT)/__uClibc_main.o + +objclean-y+=misc_internals_objclean + +misc_internals_objclean: + $(RM) $(MISC_INTERNALS_OUT)/{*.{o,os},interp.c} diff --git a/libc/misc/intl/Makefile.in b/libc/misc/intl/Makefile.in new file mode 100644 index 000000000..40eadfa1b --- /dev/null +++ b/libc/misc/intl/Makefile.in @@ -0,0 +1,33 @@ +# Makefile for uClibc +# +# Copyright (C) 2000 by Lineo, inc. +# Copyright (C) 2000-2005 Erik Andersen +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +MSRC:=intl.c +MOBJ:= __uClibc_dgettext.o __uClibc_dcgettext.o \ + __uClibc_textdomain.o __uClibc_bindtextdomain.o # for libstd++ + +MISC_INTL_DIR:=$(top_srcdir)libc/misc/intl +MISC_INTL_OUT:=$(top_builddir)libc/misc/intl + +MISC_INTL_MSRC:=$(MISC_INTL_DIR)/$(MSRC) +MISC_INTL_MOBJ:=$(patsubst %.o,$(MISC_INTL_OUT)/%.o,$(MOBJ)) +MISC_INTL_DEF:=$(patsubst %,-DL_%,$(subst .o,,$(notdir $(MISC_INTL_MOBJ)))) + +$(MISC_INTL_MOBJ) $(MISC_INTL_MOBJ:.o=.os): $(MISC_INTL_MSRC) + $(compile.m) + +libc-a-$(UCLIBC_HAS_GETTEXT_AWARENESS)+=$(MISC_INTL_MOBJ) +libc-a-pic-$(UCLIBC_HAS_GETTEXT_AWARENESS)+=$(MISC_INTL_MOBJ:.o=.os) +libc-so-$(UCLIBC_HAS_GETTEXT_AWARENESS)+=$(MISC_INTL_MOBJ:.o=.os) + +CFLAGS-multi-$(UCLIBC_HAS_GETTEXT_AWARENESS)+=$(MISC_INTL_DEF) +libc-multi-$(UCLIBC_HAS_GETTEXT_AWARENESS)+=$(MISC_INTL_MSRC) + +objclean-y