| CXX_SOURCES := main.cpp | |
| USE_LIBDL := 1 | |
| all: t2_0 t2_1 t1 a.out | |
| include Makefile.rules | |
| ifeq "$(OS)" "Darwin" | |
| # In macOS 12, dyld switched to using chained fixups. As a result, all | |
| # symbols are bound at launch and there are no lazy pointers any more. | |
| # Since we wish to import/dlopen() a dylib with missing symbols, we need | |
| # to use a weak import. This applies to all macOS 12-aligned OS releases, | |
| # e.g. iOS 15, etc. | |
| LINKFLAGS := "-Wl,-weak-lt2_0" | |
| else | |
| LINKFLAGS := "-lt2_0" | |
| endif | |
| t1: t2_0 | |
| "$(MAKE)" VPATH=$(SRCDIR) -f $(MAKEFILE_RULES) \ | |
| DYLIB_ONLY=YES DYLIB_C_SOURCES=t1.c DYLIB_NAME=t1 LD_EXTRAS="-L. $(LINKFLAGS)" | |
| t2_0: | |
| "$(MAKE)" VPATH=$(SRCDIR) -f $(MAKEFILE_RULES) \ | |
| DYLIB_ONLY=YES DYLIB_C_SOURCES=t2_0.c DYLIB_NAME=t2_0 | |
| t2_1: | |
| "$(MAKE)" VPATH=$(SRCDIR) -f $(MAKEFILE_RULES) \ | |
| DYLIB_ONLY=YES DYLIB_C_SOURCES=t2_1.c DYLIB_NAME=t2_1 |