| # |
| # Makefile |
| # Copyright (C) 1990, 1991, 1992, 1993 ,1994 Free Software Foundation |
| # |
| # This file is free software; you can redistribute it and/or modify |
| # it under the terms of the GNU General Public License as published by |
| # the Free Software Foundation; either version 2 of the License, or |
| # (at your option) any later version. |
| # |
| # This program is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # GNU General Public License for more details. |
| # |
| # You should have received a copy of the GNU General Public License |
| # along with this program; if not, write to the Free Software |
| # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ |
| # |
| |
| # |
| # Makefile for newlib/libc/stub/hppa. This is the board support code |
| # for the HP-PRO hppa embedded boards. <rob@cygnus.com> |
| # |
| |
| DESTDIR = |
| VPATH = @srcdir@ |
| srcdir = @srcdir@ |
| objdir = . |
| srcroot = $(srcdir)/../.. |
| objroot = $(objdir)/../.. |
| |
| prefix = @prefix |
| exec_prefix = @exec_prefix@ |
| |
| bindir = @bindir@ |
| libdir = @libdir@ |
| tooldir = $(exec_prefix)/$(target_alias) |
| |
| INSTALL = @INSTALL@ |
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
| INSTALL_DATA = @INSTALL_DATA@ |
| |
| SHELL = /bin/sh |
| |
| CC = @CC@ |
| |
| AS = @AS@ |
| AR = @AR@ |
| LD = @LD@ |
| RANLIB = @RANLIB@ |
| |
| # |
| # As the boot process only deals with LIF volumes, here's the src |
| # where we borrow existing code modules and where we put our |
| # boot image if we can bvuild one. |
| # |
| LIF_SRC = /usr/tftpdir/srcboot.lif |
| LIF_DEST = /usr/tftpdir/romboot.lif |
| |
| HPDEFS = -D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE \ |
| -D_INCLUDE_HPUX_SOURCE -DPCXT |
| |
| LIBS_FOR_TARGET = -lc |
| |
| # |
| # The original flags used by HP for the boot ROMS were |
| # CFLAGS_FOR_TARGET = -c -Aa +O3 +OS -Wc,-DA1.0 -Wc,-DS1.0 +ESfic +ESsfc ${HPDEFS} |
| CFLAGS_FOR_TARGET = -c -Wd,-a -g |
| # the original value for -R was 0 |
| LDFLAGS_FOR_TARGET = -v -t -N -R 10000 -a archive |
| INCLUDES = -I${srcdir} |
| |
| BSP_OBJS= pa_stub.o debugger.o iva_table.o io.o |
| STUBCRT0=crt0.o |
| STUBLIB=hppa.o |
| LDSCRIPT=hppa.ld |
| SHARED_DIR= |
| SHARED_OBJS= |
| # SHARED_OBJS=$(SHARED_DIR) |
| |
| # Host specific makefile fragment comes in here. |
| @host_makefile_frag@ |
| |
| all: boot |
| |
| # this target is only for testing |
| test: ${STUBCRT0} $(STUBLIB) test.o $(BSP_OBJS) |
| # ${LD} $(LDFLAGS_FOR_TARGET) ${STUBCRT0} test.o $(BSP_OBJS) -o test $(LIBS_FOR_TARGET) |
| rootme=`pwd` ; \ |
| ${LD} $(LDFLAGS_FOR_TARGET) ${STUBCRT0} test.o pa_stub.o debugger.o iva_table.o io.o -o test $(LIBS_FOR_TARGET) |
| |
| $(STUBLIB): $(BSP_OBJS) |
| ${LD} -r $(BSP_OBJS) $(SHARED_OBJS) -o $(STUBLIB) |
| |
| checksum: $(srcdir)/checksum.c |
| $(CC) -g $(srcdir)/checksum.c -o checksum |
| |
| # this is the target from HP's Makefile, it may be bogus |
| hpstub: $(OBJS) |
| $(LD) $(LDFLAGS_FOR_TARGET) -e main -o $@ $(LIBRARY)/crt1.o \ |
| $(OBJS) -lc -m >stub.map |
| |
| install: |
| $(INSTALL_PROGRAM) $(STUBLIB) $(DESTDIR)$(tooldir)/lib/$(MULTISUBDIR)$(STUBLIB) |
| $(INSTALL_PROGRAM) $(SHARED_DIR)/$(STUBCRT0) $(DESTDIR)$(tooldir)/lib/$(MULTISUBDIR)$(STUBCRT0) |
| $(INSTALL_PROGRAM) $(srcdir)/$(LDSCRIPT) $(DESTDIR)$(tooldir)/lib/$(LDSCRIPT) |
| |
| .c.o: |
| $(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -c $< |
| |
| .c.s: |
| $(CC) $(CFLAGS_FOR_TARGET) -S $(INCLUDES) $< |
| # $(CC) $(CFLAGS_FOR_TARGET) $(NEWLIB_CFLAGS) $(INCLUDES) -c $< |
| |
| .s.o: |
| $(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -c $< |
| # $(AS) $(CFLAGS_FOR_TARGET) $(INCLUDES) -c $< |
| |
| .SUFFIXES: .S .c .o .s .lif |
| # |
| # lifinit -- |
| # -vnnn Sets volume size to nnn bytes. |
| # nnn must be a multiple of 256. |
| # -d Sets directory size to nnn file entries. |
| # nnn must be a multiple of 8. |
| # -nsss Sets the volume name to be sss. |
| # -Knnn Forces the directory start location to be the |
| # nearest multiple of nnn x 1024 bytes. |
| # -snnn set the initial system load (ISL) start address to |
| # nnn in the volume label |
| # -lnnn Specifies the length in bytes of the ISL code. |
| # -ennn Set the ISL entry point to nnn bytes from the |
| # beginning of the ISL |
| # |
| # lifcp -- |
| # -r Forces RAW mode copying. |
| # -T Sets the file type of the directory entry. |
| # ASCII is 1 |
| # BIN is -23951 |
| # BINARY is -2 |
| # -Knnn forces each file copied in to begin on a nnn x |
| # 1024-byte boundary from the beginning of the volume |
| # Note: the word echoed below MUST be 10 characters exactly. |
| # |
| # somxtract infile outfile -- |
| # converts a series 800 file *only* into a raw image |
| # |
| LIF_VOL = this_lif |
| # 65532 |
| boot: test checksum |
| # FIXME: This fills up the hard disk unless "-R" is used |
| @rm -f ${LIF_VOL} ${LIF_DEST} |
| @ipl_entry=`nm -t d $< | grep "T .START." | sed -e 's/T .START.//' -e 's/^0*//'` ; \ |
| echo "Entry point is at $${ipl_entry}" ; \ |
| if test x"$${ipl_entry}" != x ; then \ |
| ipl_entry=`expr $${ipl_entry} - 65536` ; \ |
| echo "Entry point offset is $${ipl_entry}" ; \ |
| cp $< $<.raw ; \ |
| rm -f $<.dis ; \ |
| objdump -d $< > $<.dis ; \ |
| somxtract $< $<.raw ; \ |
| ipl_size=`checksum -s $<.raw $<.image | sed -e 's/ is the.*//'` ; \ |
| echo "IPL_SIZE is $${ipl_size}" ; \ |
| lifinit -v64000000 -d64 -n"CYGNUS " -K2 -s4096 -l$${ipl_size} -e$${ipl_entry} ${LIF_DEST} ;\ |
| else \ |
| echo "ERROR: \$$START\$$ symbol not found" ; \ |
| fi |
| @chmod a+rw $<.image |
| @lifcp -r -K2 $<.image ${LIF_DEST}:TEST |
| @rm -f $<.image $<.dis |
| @lifls -l ${LIF_DEST} |
| @objdump -d $< > $<.dis |
| |
| .S.o: |
| rm -f $*.s |
| ${CPP} $< > $*.s |
| $(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -c $*.s |
| # $(CC) $(CFLAGS_FOR_TARGET) $(NEWLIB_CFLAGS) $(INCLUDES) -c $< |
| |
| .c.list: |
| $(CC) $(CFLAGS) $*.c -S |
| $(AS) $(AFLAGS) $*.s -Wa,-l > $*.list |
| rm $*.s |
| |
| .s.list: |
| $(AS) $(AFLAGS) $*.s -Wa,-l > $*.list |
| |
| doc: |
| |
| clean mostlyclean: |
| rm -f *~ *.map *.list stub romboot.lif a.out *.raw *.image |
| rm -f *.o $(STUBLIB) $(STUBCRT0) checksum *.dis test |
| |
| distclean maintainer-clean realclean: clean |
| rm -f Makefile config.cache config.log config.status |
| |
| pa_stub.o: $(srcdir)/pa_stub.c |
| debugger.o: $(srcdir)/debugger.s |
| iva_table.o: $(srcdir)/iva_table.s |
| io.o: $(srcdir)/io.c |
| crt0.o: $(srcdir)/crt0.s |
| test.o: $(srcdir)/test.c |
| term_in.o: $(srcdir)/term_in.s |
| term_out.o: $(srcdir)/term_out.s |
| term_init.o: $(srcdir)/term_init.s |
| |
| .PHONY: info install-info clean-info |
| info: |
| install-info: |
| clean-info: |
| |
| Makefile: Makefile.in config.status @host_makefile_frag_path@ |
| $(SHELL) config.status |
| |
| config.status: configure |
| $(SHELL) config.status --recheck |