@@ -6,7 +6,7 @@ include $(JULIAHOME)/Make.inc
6
6
include $(JULIAHOME ) /deps/llvm-ver.make
7
7
8
8
9
- HEADERS := $(addprefix $(JULIAHOME ) /cli/ ,jl_exports.h loader.h) $(addprefix $(JULIAHOME ) /src/support/, platform.h dirpath.h) $( addprefix $( JULIAHOME ) /src/, jl_exported_data.inc jl_exported_funcs.inc)
9
+ HEADERS := $(addprefix $(SRCDIR ) / ,jl_exports.h loader.h) $(addprefix $(JULIAHOME ) /src/, support/platform.h support/ dirpath.h jl_exported_data.inc jl_exported_funcs.inc)
10
10
11
11
LOADER_CFLAGS = $(JCFLAGS ) -I$(BUILDROOT ) /src -I$(JULIAHOME ) /src -I$(JULIAHOME ) /src/support -I$(build_includedir ) -ffreestanding
12
12
LOADER_LDFLAGS = $(JLDFLAGS ) -ffreestanding -L$(build_shlibdir ) -L$(build_libdir )
95
95
96
96
julia-release : $(build_bindir ) /julia$(EXE )
97
97
julia-debug : $(build_bindir ) /julia-debug$(EXE )
98
- libjulia-release : $(build_shlibdir ) /libjulia.$(JL_MAJOR_MINOR_SHLIB_EXT )
99
- libjulia-debug : $(build_shlibdir ) /libjulia-debug.$(JL_MAJOR_MINOR_SHLIB_EXT )
98
+ libjulia-release : $(build_shlibdir ) /libjulia.$(SHLIB_EXT )
99
+ libjulia-debug : $(build_shlibdir ) /libjulia-debug.$(SHLIB_EXT )
100
100
101
101
ifeq ($(OS ) ,WINNT)
102
102
# On Windows we need to strip out exported functions from the generated import library.
@@ -108,39 +108,40 @@ ABI_UNDERSCORE :=
108
108
endif
109
109
EXPORTED_FUNCS := $(shell echo -e "#include \"jl_exported_funcs.inc\"\n#define XX(x) $(ABI_UNDERSCORE ) x\nJL_EXPORTED_FUNCS(XX)" | $(CPP ) -I$(JULIAHOME ) /src - | tail -n 1)
110
110
STRIP_EXPORTED_FUNCS := $(patsubst % ,--strip-symbol=% ,$(EXPORTED_FUNCS ) )
111
-
112
- # Note that if the objcopy command starts getting too long, we can use `@file` to read
113
- # command-line options from `file` instead.
114
- define strip_implib
115
- $(OBJCOPY ) $(1 ) .a $(STRIP_EXPORTED_FUNCS ) $(1 ) .a.stripped
116
- mv $(1 ) .a.stripped $(1 ) .a
117
- endef
118
111
endif
119
112
120
113
$(build_shlibdir ) /libjulia.$(JL_MAJOR_MINOR_SHLIB_EXT ) : $(LIB_OBJS ) | $(build_shlibdir ) $(build_libdir )
121
- @$(call PRINT_LINK, $(CC ) $(call IMPLIB_FLAGS,$@ ) $(LOADER_CFLAGS ) -DLIBRARY_EXPORTS -shared $(SHIPFLAGS ) $(LIB_OBJS ) -o $@ $( JLIBLDFLAGS ) $( LOADER_LDFLAGS ) $( RPATH_LIB ) ) $( call SONAME_FLAGS,libjulia. $( JL_MAJOR_SHLIB_EXT ) )
122
- $( INSTALL_NAME_CMD ) libjulia. $( SHLIB_EXT ) $@
123
- ifneq ( $( OS ) , WINNT)
124
- @ln -sf $(notdir $@) $(build_shlibdir)/libjulia.$(JL_MAJOR_SHLIB_EXT )
125
- @ln -sf $(notdir $@) $(build_shlibdir)/libjulia.$(SHLIB_EXT)
126
- else
127
- $(call strip_implib,$( build_libdir)/libjulia.$(SHLIB_EXT) )
114
+ @$(call PRINT_LINK, $(CC ) $(call IMPLIB_FLAGS,$@ .tmp ) $(LOADER_CFLAGS ) -DLIBRARY_EXPORTS -shared $(SHIPFLAGS ) $(LIB_OBJS ) -o $@ \
115
+ $( JLIBLDFLAGS ) $( LOADER_LDFLAGS ) $( RPATH_LIB ) $( call SONAME_FLAGS,libjulia. $( JL_MAJOR_SHLIB_EXT ) ) )
116
+ @ $( INSTALL_NAME_CMD ) libjulia. $( SHLIB_EXT ) $@
117
+ ifeq ( $( OS ) , WINNT )
118
+ @# Note that if the objcopy command starts getting too long, we can use `@file` to read
119
+ @ # command-line options from `file` instead.
120
+ @ $(call PRINT_ANALYZE, $(OBJCOPY) $( build_libdir)/$(notdir $@).tmp.a $(STRIP_EXPORTED_FUNCS) $(build_libdir)/$(notdir $@).a && rm $(build_libdir)/$(notdir $@).tmp.a )
128
121
endif
129
122
130
123
$(build_shlibdir ) /libjulia-debug.$(JL_MAJOR_MINOR_SHLIB_EXT ) : $(LIB_DOBJS ) | $(build_shlibdir ) $(build_libdir )
131
- @$(call PRINT_LINK, $(CC ) $(call IMPLIB_FLAGS,$@ ) $(LOADER_CFLAGS ) -DLIBRARY_EXPORTS -shared $(DEBUGFLAGS ) $(LIB_DOBJS ) -o $@ $(JLIBLDFLAGS ) $(LOADER_LDFLAGS ) $(RPATH_LIB ) ) $(call SONAME_FLAGS,libjulia-debug.$(JL_MAJOR_SHLIB_EXT ) )
132
- $(INSTALL_NAME_CMD ) libjulia-debug.$(SHLIB_EXT ) $@
124
+ @$(call PRINT_LINK, $(CC ) $(call IMPLIB_FLAGS,$@ .tmp) $(LOADER_CFLAGS ) -DLIBRARY_EXPORTS -shared $(DEBUGFLAGS ) $(LIB_DOBJS ) -o $@ .tmp \
125
+ $(JLIBLDFLAGS ) $(LOADER_LDFLAGS ) $(RPATH_LIB ) $(call SONAME_FLAGS,libjulia-debug.$(JL_MAJOR_SHLIB_EXT ) ) )
126
+ @$(INSTALL_NAME_CMD ) libjulia-debug.$(SHLIB_EXT ) $@ .tmp
127
+ ifeq ($(OS ) , WINNT)
128
+ @$(call PRINT_ANALYZE, $(OBJCOPY) $(build_libdir)/$(notdir $@).tmp.a $(STRIP_EXPORTED_FUNCS) $(build_libdir)/$(notdir $@).a && rm $(build_libdir)/$(notdir $@).tmp.a)
129
+ endif
130
+
131
+
133
132
ifneq ($(OS ) , WINNT)
134
- @ln -sf $(notdir $@) $(build_shlibdir)/libjulia-debug.$(JL_MAJOR_SHLIB_EXT)
135
- @ln -sf $(notdir $@) $(build_shlibdir)/libjulia-debug.$(SHLIB_EXT)
136
- else
137
- $(call strip_implib,$(build_libdir)/libjulia-debug.$(SHLIB_EXT))
133
+ $(build_shlibdir ) /libjulia.$(JL_MAJOR_SHLIB_EXT ) $(build_shlibdir ) /libjulia-debug.$(JL_MAJOR_SHLIB_EXT ) : $(build_shlibdir ) /libjulia% .$(JL_MAJOR_SHLIB_EXT ) : \
134
+ $(build_shlibdir ) /libjulia%.$(JL_MAJOR_MINOR_SHLIB_EXT )
135
+ @$(call PRINT_LINK, ln -sf $(notdir $< ) $@ )
136
+ $(build_shlibdir ) /libjulia.$(SHLIB_EXT ) $(build_shlibdir ) /libjulia-debug.$(SHLIB_EXT ) : $(build_shlibdir ) /libjulia% .$(SHLIB_EXT ) : \
137
+ $(build_shlibdir ) /libjulia%.$(JL_MAJOR_MINOR_SHLIB_EXT ) $(build_shlibdir ) /libjulia%.$(JL_MAJOR_SHLIB_EXT )
138
+ @$(call PRINT_LINK, ln -sf $(notdir $< ) $@ )
138
139
endif
139
140
140
- $(build_bindir ) /julia$(EXE ) : $(EXE_OBJS ) $(build_shlibdir ) /libjulia.$(JL_MAJOR_MINOR_SHLIB_EXT ) | $(build_bindir )
141
+ $(build_bindir ) /julia$(EXE ) : $(EXE_OBJS ) $(build_shlibdir ) /libjulia.$(SHLIB_EXT ) | $(build_bindir )
141
142
@$(call PRINT_LINK, $(CC ) $(LOADER_CFLAGS ) $(SHIPFLAGS ) $(EXE_OBJS ) -o $@ $(LOADER_LDFLAGS ) $(RPATH ) -ljulia)
142
143
143
- $(build_bindir ) /julia-debug$(EXE ) : $(EXE_DOBJS ) $(build_shlibdir ) /libjulia-debug.$(JL_MAJOR_MINOR_SHLIB_EXT ) | $(build_bindir )
144
+ $(build_bindir ) /julia-debug$(EXE ) : $(EXE_DOBJS ) $(build_shlibdir ) /libjulia-debug.$(SHLIB_EXT ) | $(build_bindir )
144
145
@$(call PRINT_LINK, $(CC ) $(LOADER_CFLAGS ) $(DEBUGFLAGS ) $(EXE_DOBJS ) -o $@ $(LOADER_LDFLAGS ) $(RPATH ) -ljulia-debug)
145
146
146
147
clean : | $(CLEAN_TARGETS )
0 commit comments