]>
Commit | Line | Data |
---|---|---|
f0da4aa1 EA |
1 | # Makefile for uClibc |
2 | # | |
3 | # Copyright (C) 2000 by Lineo, inc. | |
58bd16ab | 4 | # Copyright (C) 2000-2002 Erik Andersen <[email protected]> |
f0da4aa1 EA |
5 | # |
6 | # This program is free software; you can redistribute it and/or modify it under | |
7 | # the terms of the GNU Library General Public License as published by the Free | |
8 | # Software Foundation; either version 2 of the License, or (at your option) any | |
9 | # later version. | |
10 | # | |
11 | # This program is distributed in the hope that it will be useful, but WITHOUT | |
12 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | |
13 | # FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more | |
14 | # details. | |
15 | # | |
16 | # You should have received a copy of the GNU Library General Public License | |
17 | # along with this program; if not, write to the Free Software Foundation, Inc., | |
18 | # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
f0da4aa1 EA |
19 | |
20 | ||
beef72b5 | 21 | TOPDIR=../../ |
862fef69 | 22 | include $(TOPDIR)Rules.mak |
66f269d2 | 23 | |
3d831a7c | 24 | XXFLAGS=$(XWARNINGS) $(SSP_CFLAGS) $(SSP_ALL_CFLAGS) |
34c5a829 | 25 | ifeq ($(DODEBUG),y) |
9d4b81d7 JT |
26 | XXFLAGS+=-O0 -g3 |
27 | else | |
28 | XXFLAGS+=$(OPTIMIZATION) | |
34c5a829 | 29 | endif |
9d4b81d7 JT |
30 | XXFLAGS+= $(XARCH_CFLAGS) $(CPU_CFLAGS) \ |
31 | -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \ | |
32 | -fno-builtin -nostdinc -D_LIBC -I$(TOPDIR)ldso/include -I$(TOPDIR)ldso/ldso -I. -I$(TOPDIR)include | |
34c5a829 | 33 | |
a56073a2 | 34 | XXFLAGS+=-isystem $(shell $(CC) -print-file-name=include) |
bca6a155 EA |
35 | XXFLAGS_NOPIC:=$(XXFLAGS) |
36 | ifeq ($(DOPIC),y) | |
3368dbc3 | 37 | XXFLAGS += $(PICFLAG) -D__LIBDL_SHARED__ |
bca6a155 | 38 | endif |
26ac73a7 EA |
39 | ifeq ($(strip $(SUPPORT_LD_DEBUG)),y) |
40 | XXFLAGS+=-D__SUPPORT_LD_DEBUG__ | |
41 | endif | |
42 | ||
f0da4aa1 | 43 | LIBDL=libdl.a |
26ac73a7 | 44 | LIBDL_PIC=libdl_pic.a |
f0da4aa1 | 45 | LIBDL_SHARED=libdl.so |
58bd16ab | 46 | LIBDL_SHARED_FULLNAME=libdl-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so |
66f269d2 | 47 | |
70709408 EA |
48 | CSRC=libdl.c |
49 | OBJS=libdl.o | |
50 | PIC_OBJS=libdl_pic.o | |
66f269d2 | 51 | |
a17d8639 | 52 | all: $(OBJS) $(LIBDL) shared |
66f269d2 | 53 | |
f0da4aa1 | 54 | $(LIBDL): ar-target |
66f269d2 | 55 | |
721201d6 MNI |
56 | $(LIBDL_PIC): ar-target |
57 | ||
26ac73a7 EA |
58 | ar-target: $(OBJS) $(PIC_OBJS) |
59 | $(AR) $(ARFLAGS) $(LIBDL) ../ldso/$(TARGET_ARCH)/resolve.o $(OBJS) | |
60 | $(AR) $(ARFLAGS) $(LIBDL_PIC) $(PIC_OBJS) | |
49f0dd0f | 61 | $(INSTALL) -d $(TOPDIR)lib |
dd3fb0f8 | 62 | $(RM) $(TOPDIR)lib/$(LIBDL) |
49f0dd0f | 63 | $(INSTALL) -m 644 $(LIBDL) $(TOPDIR)lib |
f0da4aa1 | 64 | |
bdff18da | 65 | |
70709408 EA |
66 | libdl.o: libdl.c |
67 | $(CC) $(XXFLAGS_NOPIC) -c libdl.c -o libdl.o | |
26ac73a7 EA |
68 | $(STRIPTOOL) -x -R .note -R .comment $*.o |
69 | ||
70709408 EA |
70 | libdl_pic.o: libdl.c |
71 | $(CC) $(XXFLAGS) -c libdl.c -o libdl_pic.o | |
f0da4aa1 | 72 | $(STRIPTOOL) -x -R .note -R .comment $*.o |
66f269d2 | 73 | |
f0da4aa1 | 74 | $(OBJ): Makefile |
66f269d2 | 75 | |
721201d6 | 76 | shared: $(LIBDL_PIC) |
75d013b1 | 77 | $(LD) $(LDFLAGS) -soname=$(LIBDL_SHARED).$(MAJOR_VERSION) \ |
9f47eaf3 | 78 | -o $(LIBDL_SHARED_FULLNAME) -fini dl_cleanup --whole-archive $(LIBDL_PIC) \ |
c35cde1e | 79 | --no-whole-archive $(TOPDIR)/libc/misc/internals/interp.o \ |
d8c8b456 | 80 | -L$(TOPDIR)/lib -lc $(LDADD_LIBFLOAT) $(LIBGCC); |
49f0dd0f | 81 | $(INSTALL) -d $(TOPDIR)lib |
dd3fb0f8 | 82 | $(RM) $(TOPDIR)lib/$(LIBDL_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBDL_SHARED).$(MAJOR_VERSION) |
49f0dd0f | 83 | $(INSTALL) -m 644 $(LIBDL_SHARED_FULLNAME) $(TOPDIR)lib |
ff23ecf6 EA |
84 | $(LN) -sf $(LIBDL_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBDL_SHARED) |
85 | $(LN) -sf $(LIBDL_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBDL_SHARED).$(MAJOR_VERSION) | |
66f269d2 | 86 | |
f0da4aa1 | 87 | clean: |
dd3fb0f8 | 88 | $(RM) .depend $(LIBDL_SHARED)* $(LIBDL_SHARED_FULLNAME) core *.o *.a *.s *.i tmp_make foo *~ |