1 # Copyright (c) 1998 Cygnus Support
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
16 srcroot = $(srcdir)/../..
17 objroot = $(objdir)/../..
20 exec_prefix = @exec_prefix@
22 host_alias = @host_alias@
23 target_alias = @target_alias@
24 program_transform_name = @program_transform_name@
28 tooldir = $(exec_prefix)/$(target_alias)
30 # Multilib support variables.
31 # TOP is used instead of MULTI{BUILD,SRC}TOP.
38 INSTALL_PROGRAM = @INSTALL_PROGRAM@
39 INSTALL_DATA = @INSTALL_DATA@
53 OBJDUMP = `t='$(program_transform_name)'; echo objdump | sed -e $$t`
54 OBJCOPY = `t='$(program_transform_name)'; echo objcopy | sed -e $$t`
57 OBJS = syscalls.o exit.o sbrk.o close.o fstat.o getpid.o isatty.o \
58 kill.o lseek.o nanosleep.o open.o read.o unlink.o write.o stat.o \
59 ftruncate.o dup.o access.o gettimeofday.o
61 # Object files specific to particular targets.
64 GCC_LDFLAGS = `if [ -d ${objroot}/../gcc ] ; \
65 then echo -L${objroot}/../gcc ; fi`
67 CRTOBJS = crti.o crtn.o crt1.o crt2.o
68 OUTPUTS = libgloss.a $(CRTOBJS)
70 NEWLIB_CFLAGS = `if [ -d ${objroot}/newlib ]; then echo -I${objroot}/newlib/targ-include -I${srcroot}/newlib/libc/include; fi` -ffunction-sections -fdata-sections
71 NEWLIB_LDFLAGS = `if [ -d ${objroot}/newlib ]; then echo -B${objroot}/newlib/ -L${objroot}/newlib/; fi`
73 INCLUDES = -I. -I$(srcdir)/..
75 # TODO: Once libspu is installed on the system we can remove this hack
76 INCLUDES += -I${srcroot}/../libspu/include
78 # Note that when building the library, ${MULTILIB} is not the way multilib
79 # options are passed; they're passed in $(CFLAGS).
80 CFLAGS_FOR_TARGET = ${MULTILIB} ${INCLUDES} ${NEWLIB_CFLAGS}
81 LDFLAGS_FOR_TARGET = ${MULTILIB} ${NEWLIB_LDFLAGS}
85 $(CC) $(CFLAGS_FOR_TARGET) -O2 $(INCLUDES) -c $(CFLAGS) $<
88 $(CC) $(CFLAGS_FOR_TARGET) -O2 $(INCLUDES) -c $(CFLAGS) $<
90 $(AS) $(ASFLAGS_FOR_TARGET) $(INCLUDES) $(ASFLAGS) -o $*.o $<
93 # GCC knows to run the preprocessor on .S files before it assembles them.
96 $(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -c $<
99 # this is a bogus target that'll produce an assembler from the
100 # C source with the right compiler options. this is so we can
101 # track down code generation or debug symbol bugs.
104 $(CC) $(CFLAGS_FOR_TARGET) -S $(INCLUDES) $(CFLAGS) $<
109 # here's where we build the library for each target
112 libgloss.a: $(EVALOBJS)
113 ${AR} ${ARFLAGS} $@ $(EVALOBJS)
116 # C Runtime Library startup code.
118 $(CC) $(srcdir)/crti.S -c -o crti.o
121 $(CC) $(srcdir)/crtn.S -c -o crtn.o
124 $(CC) $(srcdir)/crt0.S -c -o crt1.o
127 $(CC) $(srcdir)/crt0.S -D_STD_MAIN -c -o crt2.o
132 rm -f $(OUTPUTS) *.i *~ *.o *-test *.srec *.dis *.map *.x
134 distclean maintainer-clean realclean: clean
135 rm -f Makefile config.status $(OUTPUTS)
137 .PHONY: install info install-info clean-info
139 for outputs in ${OUTPUTS}; do\
140 ${INSTALL_DATA} $${outputs} $(DESTDIR)/${tooldir}/lib${MULTISUBDIR}/$${outputs}; \
147 Makefile: Makefile.in config.status @host_makefile_frag_path@
148 $(SHELL) config.status
150 config.status: configure
151 $(SHELL) config.status --recheck
153 syscalls.o close.o fstat.o lseek.o open.o read.o stat.o unlink.o write.o: jsre.h