OpenCores
URL https://opencores.org/ocsvn/or1k_old/or1k_old/trunk

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [newlib/] [libgloss/] [hp74x/] [Makefile.in] - Rev 1765

Go to most recent revision | Compare with Previous | Blame | View Log

#
# 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>
#

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) $(tooldir)/lib/$(MULTISUBDIR)$(STUBLIB)
        $(INSTALL_PROGRAM) $(SHARED_DIR)/$(STUBCRT0) $(tooldir)/lib/$(MULTISUBDIR)$(STUBCRT0)
        $(INSTALL_PROGRAM) $(srcdir)/$(LDSCRIPT) $(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

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.