provide libhl_module.so which can be used for embedding; note this is a

deviation from current upstream though planning to upstream this.

also install hlmodule.h and opcodes.h header files. move all header
files into include/hl/ subdir. Note this requires update of consumers,
currently limited to hlsteam which will follow shortly.
master
thfr 2023-09-21 01:25:59 +00:00
parent 7d30126ccc
commit 9dfb733fef
3 changed files with 49 additions and 15 deletions

View File

@ -10,9 +10,10 @@ DISTNAME = hashlink-${V}
GH_ACCOUNT = HaxeFoundation
GH_PROJECT = hashlink
GH_TAGNAME = ${V}
REVISION = 1
REVISION = 2
SHARED_LIBS = hl 1.0 # 1.12
SHARED_LIBS += hl 1.0 # 1.12
SHARED_LIBS += hl_module 0.0 # 1.13
CATEGORIES = lang
HOMEPAGE = https://hashlink.haxe.org/

View File

@ -3,36 +3,49 @@ add versioning to libhl
{CFLAGS} -> (CFLAGS) to not get picked up by SUBST_CMD
remove Linux's 32-/64-bit detection
remove Darwin detection in install target (breaks 'make fake')
build libhl_module.so and install hl/hl_module.h and hl/opcodes.h
install headers (and hlc_main.c) in include/hl/
Index: Makefile
--- Makefile.orig
+++ Makefile
@@ -1,6 +1,4 @@
@@ -1,20 +1,19 @@
-LBITS := $(shell getconf LONG_BIT)
-MARCH ?= $(LBITS)
PREFIX ?= /usr/local
INSTALL_DIR ?= $(PREFIX)
INSTALL_BIN_DIR ?= $(PREFIX)/bin
@@ -9,12 +7,12 @@ INSTALL_INCLUDE_DIR ?= $(PREFIX)/include
INSTALL_LIB_DIR ?= $(PREFIX)/lib
-INSTALL_INCLUDE_DIR ?= $(PREFIX)/include
+INSTALL_INCLUDE_DIR ?= $(PREFIX)/include/hl
LIBS=fmt sdl ssl openal ui uv mysql sqlite
-CFLAGS = -Wall -O3 -I src -msse2 -mfpmath=sse -std=c11 -D LIBHL_EXPORTS
-LFLAGS = -L. -lhl
+CFLAGS = ${CFLAGS} -I src -I${LOCALBASE}/include -I${X11BASE}/include -std=c11 -I include -I include/pcre -I include/mikktspace -I include/minimp3 -D LIBHL_EXPORTS
+LFLAGS = -L. -L${LOCALBASE} -lhl
+CFLAGS = -O2 -pipe -I src -I/usr/local/include -I/usr/X11R6/include -std=c11 -I include -I include/pcre -I include/mikktspace -I include/minimp3 -D LIBHL_EXPORTS
+LFLAGS = -L. -L/usr/local -lhl
EXTRA_LFLAGS ?=
-LIBFLAGS =
-HLFLAGS = -ldl
-LIBEXT = so
+LIBFLAGS = -L${LOCALBASE}/lib -L${X11BASE}/lib
+LIBFLAGS = -L/usr/local/lib -L/usr/X11R6/lib
+HLFLAGS =
+LIBEXT = so.${LIBhl_VERSION}
+LIBEXT_MODULE = so.${LIBhl_module_VERSION}
LIBTURBOJPEG = -lturbojpeg
PCRE_FLAGS = -I include/pcre
@@ -105,16 +103,9 @@ LIB += ${HL_DEBUG}
@@ -32,6 +31,7 @@ STD = src/std/array.o src/std/buffer.o src/std/bytes.o
src/std/track.o
HL = src/code.o src/jit.o src/main.o src/module.o src/debugger.o src/profile.o
+HL_MODULE = src/code.o src/jit.o src/module.o src/debugger.o src/profile.o
FMT_INCLUDE = -I include/mikktspace -I include/minimp3
@@ -105,16 +105,9 @@ LIB += ${HL_DEBUG}
else
# Linux
@ -50,15 +63,28 @@ Index: Makefile
LIBOPENAL = -lopenal
LIBOPENGL = -lGL
RELEASE_NAME = linux
@@ -133,7 +124,6 @@ endif
all: libhl hl libs
@@ -130,17 +123,18 @@ ifdef DEBUG
CFLAGS += -g
endif
-all: libhl hl libs
+all: libhl libhl_module hl libs
install:
- $(UNAME)==Darwin && ${MAKE} uninstall
mkdir -p $(INSTALL_BIN_DIR)
cp hl $(INSTALL_BIN_DIR)
mkdir -p $(INSTALL_LIB_DIR)
@@ -149,46 +139,46 @@ uninstall:
cp *.hdll $(INSTALL_LIB_DIR)
cp libhl.${LIBEXT} $(INSTALL_LIB_DIR)
+ cp libhl_module.${LIBEXT_MODULE} $(INSTALL_LIB_DIR)
mkdir -p $(INSTALL_INCLUDE_DIR)
cp src/hl.h src/hlc.h src/hlc_main.c $(INSTALL_INCLUDE_DIR)
+ cp src/hlmodule.h src/opcodes.h $(INSTALL_INCLUDE_DIR)
uninstall:
rm -f $(INSTALL_BIN_DIR)/hl $(INSTALL_LIB_DIR)/libhl.${LIBEXT} $(INSTALL_LIB_DIR)/*.hdll
@@ -149,46 +143,49 @@ uninstall:
libs: $(LIBS)
./include/pcre/%.o: include/pcre/%.c
@ -81,6 +107,9 @@ Index: Makefile
- ${CC} ${CFLAGS} -o hl ${HL} ${LFLAGS} ${EXTRA_LFLAGS} ${HLFLAGS}
+ ${CC} $(CFLAGS) -o hl ${HL} ${LFLAGS} ${EXTRA_LFLAGS} ${HLFLAGS}
+libhl_module: ${HL_MODULE}
+ ${CC} -o libhl_module.${LIBEXT_MODULE} ${LIBFLAGS} -shared ${HL_MODULE} -lm
+
libs/fmt/%.o: libs/fmt/%.c
- ${CC} ${CFLAGS} -o $@ -c $< ${FMT_INCLUDE}
+ ${CC} $(CFLAGS) -o $@ -c $< ${FMT_INCLUDE}
@ -119,7 +148,7 @@ Index: Makefile
mesa:
(cd libs/mesa && ${MAKE})
@@ -249,7 +239,7 @@ codesign_osx:
@@ -249,7 +246,7 @@ codesign_osx:
.SUFFIXES : .c .o
.c.o :

View File

@ -1,9 +1,13 @@
@bin bin/hl
include/hl.h
include/hlc.h
include/hlc_main.c
include/hl/
include/hl/hl.h
include/hl/hlc.h
include/hl/hlc_main.c
include/hl/hlmodule.h
include/hl/opcodes.h
@bin lib/fmt.hdll
@lib lib/libhl.so.${LIBhl_VERSION}
@lib lib/libhl_module.so.${LIBhl_module_VERSION}
@bin lib/mysql.hdll
@bin lib/openal.hdll
@bin lib/sdl.hdll