head	1.1;
branch	1.1.1;
access;
symbols
	LIBC_4_5_19:1.1.1.6
	LIBC_4_5_18:1.1.1.6
	LIBC_4_5_17:1.1.1.6
	LIBC_4_5_16:1.1.1.5
	LIBC_4_5_15:1.1.1.5
	LIBC_4_5_14:1.1.1.4
	LIBC_4_5_13:1.1.1.4
	LIBC_4_5_12:1.1.1.4
	LIBC_4_5_11:1.1.1.3
	LIBC_4_5_10:1.1.1.2
	LIBC_4_5_9:1.1.1.1
	LIBC_4_5_8:1.1.1.1
	LIBC_4_5_7:1.1.1.1
	LIBC:1.1.1;
locks; strict;
comment	@# @;


1.1
date	93.12.14.16.58.51;	author steinber;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	93.12.14.16.58.52;	author steinber;	state Exp;
branches;
next	1.1.1.2;

1.1.1.2
date	94.01.13.12.16.24;	author steinber;	state Exp;
branches;
next	1.1.1.3;

1.1.1.3
date	94.01.19.16.23.48;	author steinber;	state Exp;
branches;
next	1.1.1.4;

1.1.1.4
date	94.01.20.17.16.32;	author dws;	state Exp;
branches;
next	1.1.1.5;

1.1.1.5
date	94.02.01.13.48.10;	author steinber;	state Exp;
branches;
next	1.1.1.6;

1.1.1.6
date	94.02.01.14.37.24;	author steinber;	state Exp;
branches;
next	;


desc
@@



1.1
log
@Initial revision
@
text
@#

include ../../Makeconfig

clean:
	$(RM) -f *.s
@


1.1.1.1
log
@LIBC_4_5_7
@
text
@@


1.1.1.2
log
@LIBC_4_5_10
@
text
@d5 2
a6 97
JUMP_DIR:=$(SRCDIR)/jump/libc

JUMP_PARAMS=$(JUMP_DIR)/jump.params.build
SHLIB_NAME:= $(shell awk -F= ' { if ($$1 == "Name")  print $$2 }' $(JUMP_PARAMS))
SHLIB_TEXT:= $(shell awk -F= ' { if ($$1 == "Text")  print $$2 }' $(JUMP_PARAMS))
SHLIB_DATA:= $(shell awk -F= ' { if ($$1 == "Data")  print $$2 }' $(JUMP_PARAMS))
SHLIB_JUMP:= $(shell awk -F= ' { if ($$1 == "Jump")  print $$2 }' $(JUMP_PARAMS))
SHLIB_GOT:= $(shell awk -F= ' { if ($$1 == "GOT")  print $$2 }' $(JUMP_PARAMS))
SHLIB_VERSION:= $(shell awk -F= ' { if ($$1 == "Version")  print $$2 }' $(JUMP_PARAMS))

SHLIB_VERSION_MAJOR:=$(shell awk -F= ' { \
  if ($$1 == "Version") { \
    for (i = 1; i <= length ($$2); i++) { \
      if (substr ($$2, i, 1) == ".") { \
	print substr ($$2, 1, i - 1); break; \
      } } } } ' $(JUMP_PARAMS))

SHLIB_FILE:=$(basename $(SHLIB_NAME)).so.$(SHLIB_VERSION)

SHLIB_FILE_MAJOR:=$(basename $(SHLIB_NAME)).so.$(SHLIB_VERSION_MAJOR)

SYSLIBS:= $(SHARED_DIR)/gcc/libgcc3.a \
	$(SHARED_DIR)/compat/libcompat.a $(SRCDIR)/libalias.a

STUBNAMES=libc libcurses libtermcap libdbm
STUBLIBS:= $(foreach lib, $(STUBNAMES), $(lib).sa)
SHLIBS:= $(foreach lib, $(STUBNAMES), $(lib).a)

all lib:
	(cd $(SRCDIR); for l in *.a; do \
	  $(AR) -d $$l __.SYMDEF; \
	  $(REALRANLIB) $$l; done)
	($(AR) -d $(SHARED_DIR)/compat/libcompat.a __.SYMDEF; \
	 $(REALRANLIB) $(SHARED_DIR)/compat/libcompat.a; )
	(cd $(SHARED_DIR); for l in *.a; do \
	  $(AR) -d $$l __.SYMDEF; \
	  $(REALRANLIB) $$l; done)
	$(MKIMAGE) -l $(SHLIB_NAME) -v $(SHLIB_VERSION) -a $(SHLIB_TEXT) \
		-d $(SHLIB_DATA) -j $(SHLIB_JUMP)  -g $(SHLIB_GOT) \
		-- $(SHLIBS:%=$(SHARED_DIR)/%) $(SYSLIBS)
	$(MKSTUBS) -l $(SHLIB_NAME) -v $(SHLIB_VERSION) -a $(SHLIB_TEXT) \
		-d $(SHLIB_DATA) -j $(SHLIB_JUMP)  -g $(SHLIB_GOT) \
		-- $(STUBNAMES)
	$(VERIFY) -l $(SHLIB_FILE) $(STUBLIBS)
	mv $(SHLIB_FILE) lib.so # do this trick for stupid fs
	$(STRIP) lib.so
	mv lib.so $(SHLIB_FILE)
	$(RM) -rf ./tmpcopy; mkdir tmpcopy; \
	(cd ./tmpcopy ;\
	   $(AR) -x $(SRCDIR)/libalias.a; \
	   $(AR) -x $(SHARED_DIR)/libc.a  \
		__fpu_control.o __load.o __setfpucw.o; \
	   $(AR) $(AR_FLAGS) ../libc.sa *.o; \
	 cd ..; $(RM) -rf ./tmpcopy;)
	for l in *.sa; do \
	  $(AR) -d $$l __.SYMDEF; \
	  $(REALRANLIB) $$l; \
	done

realclean clean:
	$(RM) -f core *.o *.s *.sa *.so.* *.a verify.out *.log

ifeq ($(TARGET_LIB_DIR),/lib)

install:
	if [ ! -d $(TARGET_LIB_DIR) ]; then \
	  $(MKDIR) $(TARGET_LIB_DIR); \
	else true; fi
	cp $(STUBLIBS) $(TARGET_LIB_DIR)
	if [ ! -d $(TARGET_SO_DIR) ]; then \
	  $(MKDIR) $(TARGET_SO_DIR); \
	else true; fi
	if [ -f $(TARGET_SO_DIR)/$(SHLIB_FILE) ]; then \
	  (cd $(TARGET_SO_DIR); \
	   cp $(SHLIB_FILE) /tmp; \
	   if [ $$? -eq 0 ]; then \
	     ln -sf /tmp/$(SHLIB_FILE) $(SHLIB_FILE_MAJOR); \
	   else exit 1; fi; \
	   mv $(SHLIB_FILE) $(SHLIB_FILE_MAJOR).old); \
	else true; fi
	cp $(SHLIB_FILE) $(TARGET_SO_DIR)
	(cd $(TARGET_SO_DIR); \
	   ln -sf $(SHLIB_FILE) $(SHLIB_FILE_MAJOR))

else

install:
	if [ ! -d $(TARGET_LIB_DIR) ]; then \
	  $(MKDIR) $(TARGET_LIB_DIR); \
	else true; fi
	cp $(STUBLIBS) $(TARGET_LIB_DIR)
	if [ ! -d $(TARGET_SO_DIR) ]; then \
	  $(MKDIR) $(TARGET_SO_DIR); \
	else true; fi
	cp $(SHLIB_FILE) $(TARGET_SO_DIR)

endif
@


1.1.1.3
log
@LIBC_4_5_11
@
text
@d3 1
a3 1
TOPDIR=../..
d5 1
a5 1
include $(TOPDIR)/Makeconfig
a6 2
JUMP_DIR:=$(TOPDIR)/jump/libc

d26 2
a27 2
SYSLIBS:= $(SHARED_DIR)/libgcc/libgcc3.a \
	$(SHARED_DIR)/libcompat/libcompat.a $(TOPDIR)/libalias.a
d34 1
a34 1
	(cd $(TOPDIR); for l in *.a; do \
d37 2
a38 2
	($(AR) -d $(SHARED_DIR)/libcompat/libcompat.a __.SYMDEF; \
	 $(REALRANLIB) $(SHARED_DIR)/libcompat/libcompat.a; )
d54 1
a54 1
	   $(AR) -x $(TOPDIR)/libalias.a; \
@


1.1.1.4
log
@LIBC_4_5_12
@
text
@d56 2
a57 2
	   $(AR) -x ../$(TOPDIR)/libalias.a; \
	   $(AR) -x ../$(SHARED_DIR)/libc.a  \
@


1.1.1.5
log
@LIBC_4_5_15
@
text
@d69 1
a69 1
ifeq ($(TARGET_SO_DIR),/lib)
@


1.1.1.6
log
@LIBC_4_5_17
@
text
@a34 2
STATIC_OBJS=__fpu_control.o __load.o __setfpucw.o set-init.o

d57 2
a58 1
	   $(AR) -x ../$(SHARED_DIR)/libc.a  $(STATIC_OBJS); \
@
