File 0001-Build-shared-and-static-libraries.patch of Package tcc

From 4ce09e01cd244ee7ffd3acae60afc7dc43c2d4e8 Mon Sep 17 00:00:00 2001
From: Arachnos
Date: Sun, 26 Sep 2021 00:00:00 +0000
Subject: [PATCH] Build shared and static libraries

Build shared and static libraries.
---
 Makefile  | 41 ++++++++++++++++++++++++-----------------
 configure |  1 +
 2 files changed, 25 insertions(+), 17 deletions(-)

diff --git a/Makefile b/Makefile
index 3ae466f..4a178fb 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,8 @@ ifeq (-$(CC)-$(GCC_MAJOR)-$(findstring $(GCC_MINOR),56789)-,-gcc-4--)
  CFLAGS += -D_FORTIFY_SOURCE=0
 endif
 
-LIBTCC = libtcc.a
+LIBTCCA = libtcc.a
+LIBTCCS = libtcc.so.1.0
 LIBTCC1 = libtcc1.a
 LINK_LIBTCC =
 LIBS =
@@ -23,10 +24,10 @@ CFLAGS += $(CPPFLAGS)
 VPATH = $(TOPSRC)
 
 ifdef CONFIG_WIN32
- ifneq ($(CONFIG_static),yes)
-  LIBTCC = libtcc$(DLLSUF)
+ #ifneq ($(CONFIG_static),yes)
+  LIBTCCS = libtcc$(DLLSUF)
   LIBTCCDEF = libtcc.def
- endif
+ #endif
  CFGWIN = -win
  NATIVE_TARGET = $(ARCH)-win$(if $(findstring arm,$(ARCH)),ce,32)
 else
@@ -35,13 +36,13 @@ else
   LIBS+=-ldl
  endif
  # make libtcc as static or dynamic library?
- ifeq ($(CONFIG_static),no)
-  LIBTCC=libtcc$(DLLSUF)
+ #ifeq ($(CONFIG_static),no)
+  #LIBTCCS=libtcc$(DLLSUF)
   export LD_LIBRARY_PATH := $(CURDIR)/$(TOP)
   ifneq ($(CONFIG_rpath),no)
    LINK_LIBTCC += -Wl,-rpath,"$(libdir)"
   endif
- endif
+ #endif
  CFGWIN =-unx
  NATIVE_TARGET = $(ARCH)
  ifdef CONFIG_OSX
@@ -85,7 +86,7 @@ ifeq ($(INCLUDED),no)
 # running top Makefile
 
 PROGS = tcc$(EXESUF)
-TCCLIBS = $(LIBTCC1) $(LIBTCC) $(LIBTCCDEF)
+TCCLIBS = $(LIBTCC1) $(LIBTCCA) $(LIBTCCS) $(LIBTCCDEF)
 TCCDOCS = tcc.1 tcc-doc.html tcc-doc.info
 
 all: $(PROGS) $(TCCLIBS) $(TCCDOCS)
@@ -190,7 +191,7 @@ $(X)%.o : %.c $(LIBTCC_INC)
 $(X)tcc.o : tcctools.c
 
 # Host Tiny C Compiler
-tcc$(EXESUF): tcc.o $(LIBTCC)
+tcc$(EXESUF): tcc.o $(LIBTCCS)
 	$(CC) -o $@ $^ $(LIBS) $(LDFLAGS) $(LINK_LIBTCC)
 
 # Cross Tiny C Compilers
@@ -205,15 +206,15 @@ tcc_p$(EXESUF): $($T_FILES)
 	$(CC) -o $@ $< $(DEFINES) $(CFLAGS_P) $(LIBS_P) $(LDFLAGS_P)
 
 # static libtcc library
-libtcc.a: $(LIBTCC_OBJ)
+$(LIBTCCA): $(LIBTCC_OBJ)
 	$(AR) rcs $@ $^
 
 # dynamic libtcc library
-libtcc.so: $(LIBTCC_OBJ)
+$(LIBTCCS): $(LIBTCC_OBJ)
 	$(CC) -shared -Wl,-soname,$@ -o $@ $^ $(LDFLAGS)
 
-libtcc.so: CFLAGS+=-fPIC
-libtcc.so: LDFLAGS+=-fPIC
+$(LIBTCCS): CFLAGS+=-fPIC
+$(LIBTCCS): LDFLAGS+=-fPIC
 
 # windows dynamic libtcc library
 libtcc.dll : $(LIBTCC_OBJ)
@@ -269,7 +270,13 @@ install-unx:
 	$(call IBw,$(PROGS) $(PROGS_CROSS),"$(bindir)")
 	$(call IFw,$(LIBTCC1) $(LIBTCC1_U),"$(tccdir)")
 	$(call IF,$(TOPSRC)/include/*.h $(TOPSRC)/tcclib.h,"$(tccdir)/include")
-	$(call $(if $(findstring .so,$(LIBTCC)),IBw,IFw),$(LIBTCC),"$(libdir)")
+	#$(call $(if $(findstring .so,$(LIBTCC)),IBw,IFw),$(LIBTCC),"$(libdir)")
+	$(call IBw,$(LIBTCCS),"$(libdir)")
+	ln -sf "$(ln_libdir)/$(LIBTCCS)" "$(libdir)/libtcc.so.1"
+	ln -sf "$(ln_libdir)/$(LIBTCCS)" "$(libdir)/libtcc.so"
+ifneq ($(CONFIG_static),no)
+	$(call IFw,$(LIBTCCA),"$(libdir)")
+endif
 	$(call IF,$(TOPSRC)/libtcc.h,"$(includedir)")
 	$(call IFw,tcc.1,"$(mandir)/man1")
 	$(call IFw,tcc-doc.info,"$(infodir)")
@@ -283,21 +290,21 @@ endif
 # uninstall
 uninstall-unx:
 	@rm -fv $(foreach P,$(PROGS) $(PROGS_CROSS),"$(bindir)/$P")
-	@rm -fv "$(libdir)/libtcc.a" "$(libdir)/libtcc.so" "$(includedir)/libtcc.h"
+	@rm -fv "$(libdir)/$(LIBTCCA)" "$(libdir)/libtcc.so*" "$(includedir)/libtcc.h"
 	@rm -fv "$(mandir)/man1/tcc.1" "$(infodir)/tcc-doc.info"
 	@rm -fv "$(docdir)/tcc-doc.html"
 	rm -r "$(tccdir)"
 
 # install progs & libs on windows
 install-win:
-	$(call IBw,$(PROGS) $(PROGS_CROSS) $(subst libtcc.a,,$(LIBTCC)),"$(bindir)")
+	$(call IBw,$(PROGS) $(PROGS_CROSS) $(subst $(LIBTCCA),,$(LIBTCCS)),"$(bindir)")
 	$(call IF,$(TOPSRC)/win32/lib/*.def,"$(tccdir)/lib")
 	$(call IFw,libtcc1.a $(LIBTCC1_W),"$(tccdir)/lib")
 	$(call IF,$(TOPSRC)/include/*.h $(TOPSRC)/tcclib.h,"$(tccdir)/include")
 	$(call IR,$(TOPSRC)/win32/include,"$(tccdir)/include")
 	$(call IR,$(TOPSRC)/win32/examples,"$(tccdir)/examples")
 	$(call IF,$(TOPSRC)/tests/libtcc_test.c,"$(tccdir)/examples")
-	$(call IFw,$(TOPSRC)/libtcc.h $(subst .dll,.def,$(LIBTCC)),"$(libdir)")
+	$(call IFw,$(TOPSRC)/libtcc.h $(subst .dll,.def,$(LIBTCCA)),"$(libdir)")
 	$(call IFw,$(TOPSRC)/win32/tcc-win32.txt tcc-doc.html,"$(docdir)")
 ifneq "$(wildcard $(LIBTCC1_U))" ""
 	$(call IFw,$(LIBTCC1_U),"$(tccdir)/lib")
diff --git a/configure b/configure
index 1ee3acb..6e7b766 100755
--- a/configure
+++ b/configure
@@ -409,6 +409,7 @@ prefix=$prefix
 bindir=\$(DESTDIR)$bindir
 tccdir=\$(DESTDIR)$tccdir
 libdir=\$(DESTDIR)$libdir
+ln_libdir=$libdir
 includedir=\$(DESTDIR)$includedir
 mandir=\$(DESTDIR)$mandir
 infodir=\$(DESTDIR)$infodir
-- 
2.33.0

openSUSE Build Service is sponsored by