# Makefile for uClibc
#
# Copyright (C) 2000 by Lineo, inc.
+# Copyright (C) 2000,2001 Erik Andersen <andersen@uclibc.org>
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU Library General Public License as published by the Free
# other sundry sources. Files within this library are copyright by their
# respective copyright holders.
-TOPDIR=../
+TOPDIR=../../
include $(TOPDIR)Rules.mak
-LIBC=$(TOPDIR)libc.a
DIRS:=
-CSRC=execl.c execlp.c execv.c execvep.c execvp.c execle.c getcwd.c getopt.c \
- sleep.c getpass.c sysconf_src.c getopt_vars.c getlogin.c fpathconf.c
-ifeq ($(strip $(HAS_MMU)),true)
+CSRC=execl.c execlp.c execv.c execvep.c execvp.c execle.c \
+ sleep.c usleep.c getpass.c sysconf_src.c getlogin.c \
+ fpathconf.c confstr.c pathconf.c swab.c usershell.c \
+ getsubopt.c
+ifeq ($(strip $(UCLIBC_HAS_MMU)),y)
CSRC+=daemon.c
endif
+ifeq ($(strip $(UCLIBC_HAS_GNU_GETOPT)),y)
+ CSRC += getopt.c
+else
+ CSRC += getopt-susv3.c
+endif
# TESTING -- comment this out if it breaks for you
-ifeq ($(TARGET_ARCH), $(NATIVE_ARCH))
+ifeq ($(TARGET_ARCH), $(HOST_ARCH))
SYSCONF = sysconf_native
else
SYSCONF = sysconf_$(TARGET_ARCH).c
endif
COBJS=$(patsubst %.c,%.o, $(CSRC))
-
-MSRC=gnu_getopt.c
-MOBJ=_gnu_getopt_internal.o gnu_getopt_long.o gnu_getopt_long_only.o
-
-# WARNING! MOBJ _must_ come after COBJS for link to pick getopt
-# over gnu_getopt when appropriate.
-OBJS=$(COBJS) $(MOBJ)
+OBJS=$(COBJS)
all: $(SYSCONF) $(OBJS) $(LIBC)
# We are cross-compiling so use the generic sysconf.c.
sysconf_$(TARGET_ARCH).c: sysconf.c
- @echo warning: sysconf_$(NATIVE_ARCH).c is older then sysconf.c so using generic sysconf.c
- @echo To build sysconf_$(NATIVE_ARCH).c run gen_sysconf \> sysconf_$(NATIVE_ARCH).c on
+ @echo warning: sysconf_$(HOST_ARCH).c is older then sysconf.c so using generic sysconf.c
+ @echo To build sysconf_$(HOST_ARCH).c run gen_sysconf \> sysconf_$(HOST_ARCH).c on
@echo your target platform, place in the unistd directory, and rebuild
cp -f sysconf.c sysconf_$(TARGET_ARCH).c
gen_sysconf_tester.o: sysconf_tester.o getpagesize_tester.o
@ld -r -o gen_sysconf_tester.o sysconf_tester.o getpagesize_tester.o
- @if nm -s gen_sysconf_tester.o | grep -v "U errno" | grep " U " ;\
- then \
+ @if nm -s gen_sysconf_tester.o | grep -v "U errno" | grep " U "; then \
+ set -e -x; \
echo warning: missing symbols in gen_sysconf_tester.o so using generic sysconf.c ;\
cp -f sysconf.c sysconf_src.c ;\
else \
- if ../extra/gcc-uClibc/gcc-uClibc-$(NATIVE_ARCH) -static -D_UCLIBC_GENERATE_SYSCONF_MAIN sysconf.c sysconf_tester.o -o gen_sysconf && \
- ./gen_sysconf > sysconf_$(NATIVE_ARCH).c ;\
+ set -e -x; \
+ if ../extra/gcc-uClibc/gcc-uClibc-$(HOST_ARCH) -static \
+ -D_UCLIBC_GENERATE_SYSCONF_MAIN sysconf.c sysconf_tester.o \
+ -o gen_sysconf && ./gen_sysconf > sysconf_$(HOST_ARCH).c ;\
then \
- echo successfully built sysconf_$(NATIVE_ARCH).c ;\
+ echo successfully built sysconf_$(HOST_ARCH).c ;\
else \
echo warning: build of gen_sysconf failed so using generic sysconf.c ;\
- cp -f sysconf.c sysconf_$(NATIVE_ARCH).c ;\
+ cp -f sysconf.c sysconf_$(HOST_ARCH).c ;\
fi ;\
fi
$(CC) $(CFLAGS) -c $< -o $@
$(STRIPTOOL) -x -R .note -R .comment $*.o
-$(MOBJ): $(MSRC)
- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
- $(STRIPTOOL) -x -R .note -R .comment $*.o
-
$(OBJ): Makefile
subdirs: $(patsubst %, _dir_%, $(DIRS))
dummy:
clean:
- rm -f *.[oa] *~ core gen_sysconf sysconf_*.c
+ $(RM) *.[oa] *~ core gen_sysconf sysconf_*.c