OSDN Git Service

2008-11-20 Ken Werner <ken.werner@de.ibm.com>
[pf3gnuchains/sourceware.git] / libgloss / spu / Makefile.in
1 # Copyright (c) 1998 Cygnus Support
2 #
3 # The authors hereby grant permission to use, copy, modify, distribute,
4 # and license this software and its documentation for any purpose, provided
5 # that existing copyright notices are retained in all copies and that this
6 # notice is included verbatim in any distributions. No written agreement,
7 # license, or royalty fee is required for any of the authorized uses.
8 # Modifications to this software may be copyrighted by their authors
9 # and need not follow the licensing terms described here, provided that
10 # the new terms are clearly indicated on the first page of each file where
11 # they apply.
12
13 VPATH = @srcdir@
14 srcdir = @srcdir@
15 objdir = .
16 srcroot = $(srcdir)/../..
17 objroot = $(objdir)/../..
18
19 prefix = @prefix@
20 exec_prefix = @exec_prefix@
21
22 host_alias = @host_alias@
23 target_alias = @target_alias@
24 program_transform_name = @program_transform_name@
25
26 bindir = @bindir@
27 libdir = @libdir@
28 tooldir = $(exec_prefix)/$(target_alias)
29
30 # Multilib support variables.
31 # TOP is used instead of MULTI{BUILD,SRC}TOP.
32 MULTIDIRS =
33 MULTISUBDIR =
34 MULTIDO = true
35 MULTICLEAN = true
36
37 INSTALL = @INSTALL@
38 INSTALL_PROGRAM = @INSTALL_PROGRAM@
39 INSTALL_DATA = @INSTALL_DATA@
40
41 SHELL = /bin/sh
42
43 CC = @CC@
44
45 AS = @AS@
46
47 AR = @AR@
48
49 LD = @LD@
50
51 RANLIB = @RANLIB@
52
53 OBJDUMP = `t='$(program_transform_name)'; echo objdump | sed -e $$t`
54 OBJCOPY = `t='$(program_transform_name)'; echo objcopy | sed -e $$t`
55
56 # object files needed
57 OBJS = \
58         access.o chdir.o chmod.o chown.o close.o conv_stat.o dirfuncs.o dup.o \
59         dup2.o exit.o fchdir.o fchmod.o fchown.o fdatasync.o fstat.o fsync.o \
60         ftruncate.o getcwd.o getpagesize.o getpid.o gettimeofday.o isatty.o \
61         kill.o lchown.o  link.o linux_syscalls.o lockf.o lseek.o lstat.o mkdir.o \
62         mknod.o mkstemp.o mktemp.o mmap_eaddr.o mremap_eaddr.o msync_eaddr.o \
63         munmap_eaddr.o nanosleep.o open.o pread.o pwrite.o read.o readlink.o \
64         readv.o rmdir.o sbrk.o sched_yield.o shm_open.o shm_unlink.o stat.o \
65         symlink.o sync.o syscalls.o truncate.o umask.o unlink.o utime.o utimes.o \
66         write.o writev.o
67
68 # Object files specific to particular targets.
69 EVALOBJS = ${OBJS}
70
71 GCC_LDFLAGS = `if [ -d ${objroot}/../gcc ] ; \
72         then echo -L${objroot}/../gcc ; fi`
73
74 CRTOBJS = crti.o crtn.o crt1.o crt2.o
75 OUTPUTS = libgloss.a $(CRTOBJS)
76
77 NEWLIB_CFLAGS = `if [ -d ${objroot}/newlib ]; then echo -I${objroot}/newlib/targ-include -I${srcroot}/newlib/libc/include; fi` -ffunction-sections -fdata-sections
78 NEWLIB_LDFLAGS = `if [ -d ${objroot}/newlib ]; then echo -B${objroot}/newlib/ -L${objroot}/newlib/; fi`
79
80 INCLUDES = -I. -I$(srcdir)/..
81
82 # TODO: Once libspu is installed on the system we can remove this hack
83 INCLUDES += -I${srcroot}/../libspu/include
84
85 # Note that when building the library, ${MULTILIB} is not the way multilib
86 # options are passed; they're passed in $(CFLAGS).
87 CFLAGS_FOR_TARGET = ${MULTILIB} ${INCLUDES} ${NEWLIB_CFLAGS}
88 LDFLAGS_FOR_TARGET = ${MULTILIB} ${NEWLIB_LDFLAGS}
89 AR_FLAGS = qc
90
91 .c.o:
92         $(CC) $(CFLAGS_FOR_TARGET) -O2 $(INCLUDES) -c $(CFLAGS) $<
93
94 .C.o:
95         $(CC) $(CFLAGS_FOR_TARGET) -O2 $(INCLUDES) -c $(CFLAGS) $<
96 .s.o:
97         $(AS) $(ASFLAGS_FOR_TARGET) $(INCLUDES) $(ASFLAGS) -o $*.o $<
98
99 #
100 # GCC knows to run the preprocessor on .S files before it assembles them.
101 #
102 .S.o:
103         $(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -c $<
104
105 #
106 # this is a bogus target that'll produce an assembler from the
107 # C source with the right compiler options. this is so we can
108 # track down code generation or debug symbol bugs.
109 #
110 .c.s:
111         $(CC) $(CFLAGS_FOR_TARGET) -S $(INCLUDES) $(CFLAGS) $<
112
113 all: ${OUTPUTS}
114
115 #
116 # here's where we build the library for each target
117 #
118
119 libgloss.a: $(EVALOBJS)
120         ${AR} ${ARFLAGS} $@ $(EVALOBJS)
121         ${RANLIB} $@
122
123 # C Runtime Library startup code.
124 crti.o: $(srcdir)/crti.S
125         $(CC) $(srcdir)/crti.S -c -o crti.o 
126
127 crtn.o: $(srcdir)/crtn.S
128         $(CC) $(srcdir)/crtn.S -c -o crtn.o 
129
130 crt1.o: $(srcdir)/crt0.S
131         $(CC) $(srcdir)/crt0.S -c -o crt1.o
132
133 crt2.o: $(srcdir)/crt0.S
134         $(CC) $(srcdir)/crt0.S -D_STD_MAIN -c -o crt2.o
135
136 doc:    
137
138 clean mostlyclean:
139         rm -f $(OUTPUTS) *.i *~ *.o *-test *.srec *.dis *.map *.x
140
141 distclean maintainer-clean realclean: clean
142         rm -f Makefile config.status $(OUTPUTS)
143
144 .PHONY: install info install-info clean-info
145 install:
146         for outputs in ${OUTPUTS}; do\
147          ${INSTALL_DATA} $${outputs} $(DESTDIR)/${tooldir}/lib${MULTISUBDIR}/$${outputs}; \
148         done
149
150 info:
151 install-info:
152 clean-info:
153
154 Makefile: Makefile.in config.status @host_makefile_frag_path@
155         $(SHELL) config.status
156
157 config.status: configure
158         $(SHELL) config.status --recheck
159
160 syscalls.o close.o fstat.o lseek.o open.o read.o stat.o unlink.o write.o shm_open.o shm_unlink.o: jsre.h