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