@@ -286,19 +286,23 @@ $(BUILDDIR)/%.h.gen : $(SRCDIR)/%.d
286286 sed ' s/JULIA_/JL_PROBE_/' $@ > $@ .tmp
287287 mv $@ .tmp $@
288288
289+ # Generate `.inc` file that contains a list of `#define` macros to rename functions defined in `libjulia-internal`
290+ # to have a `ijl_` prefix instead of `jl_`, to denote that they are coming from `libjulia-internal`. This avoids
291+ # potential confusion with debugging tools, when inspecting a process that has both `libjulia` and `libjulia-internal`
292+ # loaded at the same time.
289293$(BUILDDIR ) /jl_internal_funcs.inc : $(SRCDIR ) /jl_exported_funcs.inc
290- # Generate `.inc` file that contains a list of `#define` macros to rename functions defined in `libjulia-internal`
291- # to have a `ijl_` prefix instead of `jl_`, to denote that they are coming from `libjulia-internal`. This avoids
292- # potential confusion with debugging tools, when inspecting a process that has both `libjulia` and `libjulia-internal`
293- # loaded at the same time.
294- grep ' XX(..*)' $< | sed -E ' s/.*XX\((.+)\).*/#define \1 i\1/g' > $@
294+ @TMPFILE=$$(mktemp $(abspath $@ .XXXXXX) ) ; \
295+ grep ' XX(..*)' $< | sed -E ' s/.*XX\((.+)\).*/#define \1 i\1/g' > $$ TMPFILE; \
296+ mv $$ TMPFILE $@
295297
298+ # Generate `.inc` file that contains a list of `#define` macros to access global data through struct instances
296299$(BUILDDIR ) /jl_data_globals_defs.inc : $(SRCDIR ) /jl_exported_data.inc
297- # Generate `.inc` file that contains a list of `#define` macros to access global data through struct instances
300+ @TMPFILE= $$( mktemp $( abspath $@ .XXXXXX) ) ; \
298301 { \
299302 grep ' XX(.*)' $< | sed -E ' s/.*XX\(([^,]+), .*\).*/#define jl_\1 (sysimg_global.\1)/g' ; \
300303 grep ' YY(.*)' $< | sed -E ' s/.*YY\(([^,]+), .*\).*/#define jl_\1 (const_globals.jl\1)/g' ; \
301- } > $@
304+ } > $$ TMPFILE; \
305+ mv $$ TMPFILE $@
302306
303307# source file rules
304308$(BUILDDIR ) /% .o : $(SRCDIR ) /% .c $(HEADERS ) | $(BUILDDIR )
@@ -370,13 +374,17 @@ $(build_shlibdir)/libllvmcalltest.$(SHLIB_EXT): $(SRCDIR)/llvmcalltest.cpp $(LLV
370374julia_flisp.boot.inc.phony : $(BUILDDIR ) /julia_flisp.boot.inc
371375
372376$(BUILDDIR ) /julia_flisp.boot.inc : $(BUILDDIR ) /julia_flisp.boot $(FLISP_EXECUTABLE_release )
373- @$(call PRINT_FLISP, $(call spawn,$(FLISP_EXECUTABLE_release ) ) $(call cygpath_w,$(SRCDIR ) /bin2hex.scm) < $< > $@ )
377+ @$(call PRINT_FLISP, TMPFILE=$$(mktemp $(abspath $@ .XXXXXX) ) ; \
378+ $(call spawn,$(FLISP_EXECUTABLE_release ) ) $(call cygpath_w,$(SRCDIR ) /bin2hex.scm) < $< > $$ TMPFILE; \
379+ mv $$ TMPFILE $@ )
374380
375381$(BUILDDIR ) /julia_flisp.boot : $(addprefix $(SRCDIR ) /,jlfrontend.scm flisp/aliases.scm flisp/profile.scm \
376382 julia-parser.scm julia-syntax.scm match.scm utils.scm ast.scm macroexpand.scm mk_julia_flisp_boot.scm) \
377383 $(FLISP_EXECUTABLE_release )
378- @$(call PRINT_FLISP, $(call spawn,$(FLISP_EXECUTABLE_release ) ) \
379- $(call cygpath_w,$(SRCDIR ) /mk_julia_flisp_boot.scm) $(call cygpath_w,$(dir $< ) ) $(notdir $< ) $(call cygpath_w,$@ ) )
384+ @$(call PRINT_FLISP, TMPFILE=$$(mktemp $(abspath $@ .XXXXXX) ) ; \
385+ $(call spawn,$(FLISP_EXECUTABLE_release ) ) \
386+ $(call cygpath_w,$(SRCDIR ) /mk_julia_flisp_boot.scm) $(call cygpath_w,$(dir $< ) ) $(notdir $< ) $(call cygpath_w,$$TMPFILE) ; \
387+ mv $$ TMPFILE $@ )
380388
381389# additional dependency links
382390$(BUILDDIR ) /codegen-stubs.o $(BUILDDIR ) /codegen-stubs.dbg.obj : $(addprefix $(SRCDIR ) /,intrinsics.h llvm-julia-passes.inc)
@@ -445,23 +453,28 @@ $(BUILDDIR)/flisp/libflisp-debug.a: $(addprefix $(SRCDIR)/,flisp/*.h flisp/*.c)
445453 $(MAKE ) -C $(SRCDIR ) /flisp debug BUILDDIR=' $(abspath $(BUILDDIR)/flisp)'
446454
447455$(BUILDDIR ) /julia_version.h : $(JULIAHOME ) /VERSION
448- @echo " // This is an autogenerated header file" > $@ .$(JULIA_BUILD_MODE ) .tmp
449- @echo " #ifndef JL_VERSION_H" >> $@ .$(JULIA_BUILD_MODE ) .tmp
450- @echo " #define JL_VERSION_H" >> $@ .$(JULIA_BUILD_MODE ) .tmp
451- @echo " #define JULIA_VERSION_STRING" \" $(JULIA_VERSION ) \" >> $@ .$(JULIA_BUILD_MODE ) .tmp
452- @echo $(JULIA_VERSION ) | awk ' BEGIN {FS="[.,+-]"} \
453- {print " #define JULIA_VERSION_MAJOR " $$ 1 " \n" \
454- " #define JULIA_VERSION_MINOR " $$ 2 " \n" \
455- " #define JULIA_VERSION_PATCH " $$ 3 ; \
456- if (NF< 4) print " #define JULIA_VERSION_IS_RELEASE 1" ; else print " #define JULIA_VERSION_IS_RELEASE 0" }' >> $@.$(JULIA_BUILD_MODE).tmp
457- @echo " #endif" >> $@ .$(JULIA_BUILD_MODE ) .tmp
458- mv $@ .$(JULIA_BUILD_MODE ) .tmp $@
456+ @TMPFILE=$$(mktemp $(abspath $@ .XXXXXX) ) ; \
457+ { \
458+ echo " // This is an autogenerated header file" ; \
459+ echo " #ifndef JL_VERSION_H" ; \
460+ echo " #define JL_VERSION_H" ; \
461+ echo " #define JULIA_VERSION_STRING" \" $(JULIA_VERSION ) \" ; \
462+ echo $(JULIA_VERSION ) | awk ' BEGIN {FS="[.,+-]"} \
463+ {print " #define JULIA_VERSION_MAJOR " $$ 1 " \n" \
464+ " #define JULIA_VERSION_MINOR " $$ 2 " \n" \
465+ " #define JULIA_VERSION_PATCH " $$ 3 ; \
466+ if (NF< 4) print " #define JULIA_VERSION_IS_RELEASE 1" ; else print " #define JULIA_VERSION_IS_RELEASE 0" }' ; \
467+ echo " #endif" ; \
468+ } > $$ TMPFILE; \
469+ mv $$ TMPFILE $@
459470
460471CXXLD = $(CXX ) -shared
461472
462473$(BUILDDIR ) /julia.expmap : $(SRCDIR ) /julia.expmap.in $(JULIAHOME ) /VERSION $(LLVM_CONFIG_ABSOLUTE )
463- sed < ' $<' > ' $@' -e " s/@JULIA_SHLIB_SYMBOL_VERSION@/JL_LIBJULIA_$( SOMAJOR) /" \
464- -e " s/@LLVM_SHLIB_SYMBOL_VERSION@/$( LLVM_SHLIB_SYMBOL_VERSION) /"
474+ @TMPFILE=$$(mktemp $(abspath $@ .XXXXXX) ) ; \
475+ sed < ' $<' > $$ TMPFILE -e " s/@JULIA_SHLIB_SYMBOL_VERSION@/JL_LIBJULIA_$( SOMAJOR) /" \
476+ -e " s/@LLVM_SHLIB_SYMBOL_VERSION@/$( LLVM_SHLIB_SYMBOL_VERSION) /" ; \
477+ mv $$ TMPFILE $@
465478
466479$(build_shlibdir ) /libjulia-internal.$(JL_MAJOR_MINOR_SHLIB_EXT ) : $(BUILDDIR ) /julia.expmap $(OBJS ) $(BUILDDIR ) /flisp/libflisp.a $(BUILDDIR ) /support/libsupport.a $(LIBUV )
467480 @$(call PRINT_LINK, $(CXXLD ) $(call IMPLIB_FLAGS,$@ ) $(SHIPFLAGS ) $(JCXXFLAGS ) $(CXXLDFLAGS ) $(OBJS ) $(RPATH_LIB ) -o $@ \
@@ -573,9 +586,9 @@ INCLUDED_CXX_FILES := \
573586clean :
574587 -rm -fr $(build_shlibdir ) /libjulia-internal* $(build_shlibdir ) /libjulia-codegen*
575588 -rm -rf $(build_shlibdir ) /libccalltest* $(build_shlibdir ) /libllvmcalltest* $(build_shlibdir ) /libccalllazyfoo* $(build_shlibdir ) /libccalllazybar*
576- -rm -f $(BUILDDIR ) /julia_flisp.boot $(BUILDDIR ) /julia_flisp.boot.inc $(BUILDDIR ) /jl_internal_funcs.inc $(BUILDDIR ) /jl_data_globals_defs.inc
589+ -rm -f $(BUILDDIR ) /julia_flisp.boot* $(BUILDDIR ) /julia_flisp.boot.inc* $(BUILDDIR ) /jl_internal_funcs.inc* $(BUILDDIR ) /jl_data_globals_defs.inc*
577590 -rm -f $(BUILDDIR ) /* .dbg.obj $(BUILDDIR ) /* .o $(BUILDDIR ) /* .dwo $(BUILDDIR ) /* .$(SHLIB_EXT ) $(BUILDDIR ) /* .a $(BUILDDIR ) /* .h.gen
578- -rm -f $(BUILDDIR ) /julia.expmap
591+ -rm -f $(BUILDDIR ) /julia.expmap*
579592 -rm -f $(BUILDDIR ) /julia_version.h
580593 -rm -f $(BUILDDIR ) /compile_commands.json*
581594
0 commit comments