194 lines
5.3 KiB
Makefile
194 lines
5.3 KiB
Makefile
#### Start of system configuration section. ####
|
|
|
|
srcdir = @srcdir@
|
|
|
|
VPATH := $(srcdir)
|
|
|
|
# Common prefix for machine-independent installed files.
|
|
prefix = @prefix@
|
|
|
|
# Common prefix for machine-dependent installed files.
|
|
exec_prefix = @exec_prefix@
|
|
|
|
bindir = $(exec_prefix)/bin
|
|
libdir = $(exec_prefix)/Sys/libs
|
|
|
|
INSTALL = @INSTALL@
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
|
|
CC = @CC@
|
|
|
|
CFLAGS = @CFLAGS@
|
|
LDFLAGS = @LDFLAGS@
|
|
|
|
RANLIB = @RANLIB@
|
|
AR = @AR@
|
|
RM = rm -f
|
|
|
|
OS = amigaos
|
|
|
|
NATIVE_CC = @NATIVE_CC@
|
|
|
|
NATIVE_CFLAGS = @NATIVE_CFLAGS@
|
|
NATIVE_LDFLAGS= @NATIVE_LDFLAGS@
|
|
|
|
#### End system configuration section ####
|
|
|
|
# For now we only build one CPU/FPU flavor of libc.a, which is the most generic version.
|
|
|
|
ifeq ($(CPU), powerpc)
|
|
CPUDIR = powerpc
|
|
FPUDIR = ppc
|
|
FLAVOR_FLAGS = -mmultiple -mcpu=604e
|
|
OTHER_CFLAGS = -DNATIVE_MORPHOS
|
|
else
|
|
CPUDIR = 68000
|
|
FPUDIR = soft-float
|
|
FLAVOR_CFLAGS =
|
|
OTHER_CFLAGS = -fomit-frame-pointer
|
|
RANLIB = m68k-amigaos-ranlib
|
|
endif
|
|
|
|
ALL_CFLAGS = $(CFLAGS) $(FLAVOR_CFLAGS) $(OTHER_CFLAGS) $(INCS) $(DEFS)
|
|
|
|
DEFS =
|
|
INCS = -I$(srcdir) -I$(srcdir)/../library -I$(srcdir)/../include -I. #-I/p
|
|
SHELL = /bin/sh
|
|
|
|
ifeq ($(CPU), powerpc)
|
|
NATIVE_FLAGS = $(NATIVE_CFLAGS) $(INC) -DNATIVE_MORPHOS -DCPU_$(FPU)
|
|
else
|
|
NATIVE_FLAGS = $(NATIVE_CFLAGS) $(INC) -DCPU_$(CPU) -DFPU_$(FPU)
|
|
endif
|
|
|
|
.c.o:
|
|
$(CC) $(ALL_CFLAGS) -c $< -o $@
|
|
|
|
SRC = v1.c
|
|
|
|
OBJ = $(SRC:.c=.o)
|
|
|
|
# 'glue' must be the first item in this list!
|
|
LIBS = glue static stack net db
|
|
|
|
ifeq ($(CPU), powerpc)
|
|
NOBASELIBS := $(foreach d, $(LIBS),../$(d)/morphos/lib$(d).a)
|
|
BASELIBS := $(foreach d, $(LIBS),../$(d)/morphos-rel/lib$(d).a)
|
|
LBASELIBS := $(foreach d, $(LIBS),../$(d)/morphos-rel32/lib$(d).a)
|
|
else
|
|
NOBASELIBS := $(foreach d, $(LIBS),../$(d)/no-baserel/lib$(d).a)
|
|
BASELIBS := $(foreach d, $(LIBS),../$(d)/baserel/lib$(d).a)
|
|
LBASELIBS := $(foreach d, $(LIBS),../$(d)/baserel32/lib$(d).a)
|
|
endif
|
|
|
|
ifeq ($(CPU), powerpc)
|
|
|
|
all: libc.a libb32c.a crt0.o lcrt0.o scrt0.o crt0i.o lcrt0i.o scrt0i.o crt0ni.o
|
|
|
|
bcrt0.o: crt0.c version.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -mbaserel -DSUPPORT_CTORS -DBASECRT0 $(INCS) -c $< -o $@
|
|
|
|
rcrt0.o: crt0.c version.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -mbaserel -DSUPPORT_CTORS -DBASECRT0 -DRCRT0 $(INCS) -c $< -o $@
|
|
|
|
lcrt0.o: crt0.c version.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -mbaserel32 -DSUPPORT_CTORS -DBASECRT0 -DLBASE $(INCS) -c $< -o $@
|
|
|
|
scrt0.o: crt0.c version.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -mbaserel32 -DSUPPORT_CTORS -DBASECRT0 -DRCRT0 -DLBASE $(INCS) -c $< -o $@
|
|
|
|
crt0.o: crt0.c version.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -DSUPPORT_CTORS $(INCS) -c -DCRT0 $< -o $@
|
|
|
|
crt0n.o: crt0n.c
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -DSUPPORT_CTORS -c $< -o $@
|
|
|
|
bcrt0i.o: crt0.c version.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -mbaserel -DSUPPORT_INIT -DBASECRT0 $(INCS) -c $< -o $@
|
|
|
|
rcrt0i.o: crt0.c version.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -mbaserel -DSUPPORT_INIT -DBASECRT0 -DRCRT0 $(INCS) -c $< -o $@
|
|
|
|
lcrt0i.o: crt0.c version.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -mbaserel32 -DSUPPORT_INIT -DBASECRT0 -DLBASE $(INCS) -c $< -o $@
|
|
|
|
scrt0i.o: crt0.c version.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -mbaserel32 -DSUPPORT_INIT -DBASECRT0 -DRCRT0 -DLBASE $(INCS) -c $< -o $@
|
|
|
|
crt0i.o: crt0.c version.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -DSUPPORT_INIT $(INCS) -c -DCRT0 $< -o $@
|
|
|
|
crt0ni.o: crt0n.c
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -DSUPPORT_INIT -c $< -o $@
|
|
|
|
|
|
else
|
|
|
|
all: libc.a libc_p.a libbc.a libb32c.a crt0.o lcrt0.o bcrt0.o rcrt0.o \
|
|
mcrt0.o gcrt0.o scrt0.o
|
|
|
|
bcrt0.o: crt0_68k.c version.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -O0 -fbaserel -DBASECRT0 $(INCS) -c $< -o $@
|
|
|
|
rcrt0.o: crt0_68k.c version.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -O0 -fbaserel -DBASECRT0 -DRCRT0 $(INCS) -c $< -o $@
|
|
|
|
lcrt0.o: crt0_68k.c version.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -O0 -m68020 -fbaserel32 -DBASECRT0 -DLBASE $(INCS) -c $< -o $@
|
|
|
|
scrt0.o: crt0_68k.c version.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) -O0 -m68020 -fbaserel32 -DBASECRT0 -DRCRT0 -DLBASE $(INCS) -c $< -o $@
|
|
|
|
crt0.o: crt0_68k.c version.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) $(INCS) -c -O0 -DCRT0 $< -o $@
|
|
|
|
mcrt0.o: crt0_68k.c version.h gmon.c gmon.h
|
|
$(CC) $(CFLAGS) $(OTHER_CFLAGS) $(INCS) -c -DMCRT0 -fno-omit-frame-pointer $< -o $@
|
|
|
|
gcrt0.o: mcrt0.o
|
|
cp $< $@
|
|
|
|
endif
|
|
|
|
|
|
define createlib
|
|
$(RM) -r $@ tempobj
|
|
@mkdir tempobj
|
|
cp $(OBJ) tempobj
|
|
cp $< $@
|
|
@(cd tempobj; for i in $(filter-out $< $(OBJ),$^) ; do echo extracting library $$i ; $(AR) x ../$$i ; done)
|
|
(cd tempobj; $(AR) q ../$@ *.o)
|
|
$(RANLIB) $@
|
|
$(RM) -r tempobj
|
|
endef
|
|
|
|
libc.a libc_p.a libbc.a libb32c.a: $(OBJ)
|
|
|
|
libc.a: $(NOBASELIBS)
|
|
$(createlib)
|
|
|
|
libbc.a: $(BASELIBS)
|
|
$(createlib)
|
|
|
|
libb32c.a: $(LBASELIBS)
|
|
$(createlib)
|
|
|
|
libc_p.a: $(NOBASELIBS:%glue.a=%glue_p.a)
|
|
$(createlib)
|
|
|
|
version.h: parse_version $(srcdir)/../version.in
|
|
./parse_version $(srcdir) >$@
|
|
|
|
parse_version: parse_version.o
|
|
$(NATIVE_CC) $(NATIVE_LDFLAGS) $< -o $@
|
|
|
|
parse_version.o: $(srcdir)/../library/parse_version.c
|
|
$(NATIVE_CC) $(NATIVE_FLAGS) -c $< -o $@
|
|
|
|
clean:
|
|
rm -rf tempobj *.[oa]
|
|
rm -f parse_version
|
|
|
|
clobber: clean
|
|
rm -f Makefile version.h
|