Skip to content

Commit

Permalink
Makefile cleanup: added support for jre_emul Objective C++ sources, r…
Browse files Browse the repository at this point in the history
…emoved unnecessary -std flags.

PiperOrigin-RevId: 354389889
  • Loading branch information
tomball authored and copybara-github committed Jan 28, 2021
1 parent efaca04 commit d1634c8
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 30 deletions.
4 changes: 4 additions & 0 deletions jre_emul/Classes/J2ObjC_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@
#include <stdint.h>
#endif

#if ! __has_extension(c_atomic)
#error C11 or higher language standard must be used for Java volatile support.
#endif

// Typedefs for each of Java's primitive types. (as originally defined in jni.h)
// jboolean and jbyte are modified from the original jni.h to integrate better
// with Objective-C code.
Expand Down
43 changes: 25 additions & 18 deletions jre_emul/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -60,24 +60,31 @@ FAT_LIB_COMPILE = $(CLANG) $(OBJCFLAGS) -I$(GEN_OBJC_DIR)
FAT_LIB_PRECOMPILED_HEADER = JreEmulation.h
endif

CORE_OBJS_RELATIVE = $(JAVA_SOURCES_CORE:.java=.o) $(NATIVE_JRE_SOURCES_CORE:.m=.o)
IO_OBJS_RELATIVE = $(JAVA_SOURCES_IO:.java=.o)
NET_OBJS_RELATIVE = $(JAVA_SOURCES_NET:.java=.o) $(NATIVE_JRE_SOURCES_NET:.m=.o)
UTIL_OBJS_RELATIVE = $(JAVA_SOURCES_UTIL:.java=.o)
CONCURRENT_OBJS_RELATIVE = $(JAVA_SOURCES_CONCURRENT:.java=.o)
CHANNELS_OBJS_RELATIVE = $(JAVA_SOURCES_CHANNELS:.java=.o) $(NATIVE_JRE_SOURCES_CHANNELS:.m=.o)
FILE_OBJS_RELATIVE = $(JAVA_SOURCES_FILE:.java=.o) $(NATIVE_JRE_SOURCES_FILE:.m=.o)
SECURITY_OBJS_RELATIVE = $(JAVA_SOURCES_SECURITY:.java=.o)
SSL_OBJS_RELATIVE = $(JAVA_SOURCES_SSL:.java=.o) $(NATIVE_JRE_SOURCES_SSL:.m=.o)
XML_OBJS_RELATIVE = $(JAVA_SOURCES_XML:.java=.o)
ZIP_OBJS_RELATIVE = $(JAVA_SOURCES_ZIP:.java=.o) $(NATIVE_JRE_SOURCES_ZIP:.m=.o)
SQL_OBJS_RELATIVE = $(JAVA_SOURCES_SQL:.java=.o)
BEANS_OBJS_RELATIVE = $(JAVA_SOURCES_BEANS:.java=.o)
TIME_OBJS_RELATIVE = $(JAVA_SOURCES_TIME:.java=.o)
ICU_OBJS_RELATIVE = $(JAVA_SOURCES_ICU:.java=.o) $(NATIVE_JRE_ICU_EMBEDDED_DATA:.m=.o)
JRE_OBJS_RELATIVE = $(JAVA_SOURCES:.java=.o) $(NATIVE_JRE_SOURCES:.m=.o)
ANDROID_OBJS_RELATIVE = $(JAVA_SOURCES_ANDROID:.java=.o)
JSON_OBJS_RELATIVE = $(JAVA_SOURCES_JSON:.java=.o)
srcs_to_objs = $(filter %.o,$(1:.java=.o) $(1:.m=.o) $(1:.mm=.o))

CORE_OBJS_RELATIVE = $(call srcs_to_objs,$(JAVA_SOURCES_CORE) $(NATIVE_JRE_SOURCES_CORE))
IO_OBJS_RELATIVE = $(call srcs_to_objs,$(JAVA_SOURCES_IO))
NET_OBJS_RELATIVE = $(call srcs_to_objs,$(JAVA_SOURCES_NET) $(NATIVE_JRE_SOURCES_NET))
UTIL_OBJS_RELATIVE = $(call srcs_to_objs,$(JAVA_SOURCES_UTIL))
CONCURRENT_OBJS_RELATIVE = $(call srcs_to_objs,$(JAVA_SOURCES_CONCURRENT))
CHANNELS_OBJS_RELATIVE = \
$(call srcs_to_objs, $(JAVA_SOURCES_CHANNELS) $(NATIVE_JRE_SOURCES_CHANNELS))
FILE_OBJS_RELATIVE = \
$(call srcs_to_objs,$(JAVA_SOURCES_FILE) $(NATIVE_JRE_SOURCES_FILE))
SECURITY_OBJS_RELATIVE = $(call srcs_to_objs,$(JAVA_SOURCES_SECURITY))
SSL_OBJS_RELATIVE = \
$(call srcs_to_objs,$(JAVA_SOURCES_SSL) $(NATIVE_JRE_SOURCES_SSL))
XML_OBJS_RELATIVE = $(call srcs_to_objs,$(JAVA_SOURCES_XML))
ZIP_OBJS_RELATIVE = \
$(call srcs_to_objs,$(JAVA_SOURCES_ZIP) $(NATIVE_JRE_SOURCES_ZIP))
SQL_OBJS_RELATIVE = $(call srcs_to_objs,$(JAVA_SOURCES_SQL))
BEANS_OBJS_RELATIVE = $(call srcs_to_objs,$(JAVA_SOURCES_BEANS))
TIME_OBJS_RELATIVE = $(call srcs_to_objs,$(JAVA_SOURCES_TIME))
ICU_OBJS_RELATIVE = \
$(call srcs_to_objs,$(JAVA_SOURCES_ICU) $(NATIVE_JRE_ICU_EMBEDDED_DATA))
ANDROID_OBJS_RELATIVE = $(call srcs_to_objs,$(JAVA_SOURCES_ANDROID))
JSON_OBJS_RELATIVE = $(call srcs_to_objs,$(JAVA_SOURCES_JSON))
JRE_OBJS_RELATIVE = $(call srcs_to_objs,$(JAVA_SOURCES) $(NATIVE_JRE_SOURCES))

include ../make/fat_lib_macros.mk
$(call emit_compile_rules,$(FAT_LIB_SOURCE_DIRS),$(FAT_LIB_COMPILE),$(FAT_LIB_PRECOMPILED_HEADER))
Expand Down
3 changes: 0 additions & 3 deletions jre_emul/environment.mk
Original file line number Diff line number Diff line change
Expand Up @@ -179,9 +179,6 @@ OBJCFLAGS_NO_ARC := $(OBJCFLAGS)

OBJCPPFLAGS := $(OBJCFLAGS) -x objective-c++ -DU_SHOW_CPLUSPLUS_API=0

# Require C11 compilation to support Java volatile translation.
OBJCFLAGS += -std=c11

ifeq ("$(strip $(CLANG_ENABLE_OBJC_ARC))", "YES")
TRANSLATE_ARGS += -use-arc
OBJCFLAGS := $(OBJCFLAGS) -fobjc-arc -fobjc-arc-exceptions\
Expand Down
2 changes: 1 addition & 1 deletion junit/environment.mk
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ RUNNER_LIB_DIST = $(ARCH_LIB_DIR)/libjunit_runner.a

# The -fobjc flags match XCode (a link fails without them because of
# missing symbols of the form OBJC_CLASS_$_[classname]).
OBJCFLAGS := -ObjC $(CC_WARNINGS) -std=c11 \
OBJCFLAGS := -ObjC $(CC_WARNINGS) \
-fobjc-abi-version=2 -fobjc-legacy-dispatch $(DEBUGFLAGS) \
-I/System/Library/Frameworks/ExceptionHandling.framework/Headers

Expand Down
4 changes: 2 additions & 2 deletions make/fat_lib_macros.mk
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,10 @@ $(1)/%.o: $(2)/%.m $(4:%=$(1)/%.pch) | fat_lib_dependencies
@echo compiling '$$<'
@$(3) $(4:%=-include $(1)/%) $(5) -MD -c '$$<' -o '$$@'

$(1)/%.o: $(2)/%.mm $(4:%=%.pch) | fat_lib_dependencies
$(1)/%.o: $(2)/%.mm $(4:%=$(1)/%.pch) | fat_lib_dependencies
@mkdir -p $$(@D)
@echo compiling '$$<'
@$(3) -x objective-c++ $(4:%=-include %) $(5) -MD -c '$$<' -o '$$@'
@$(3) -x objective-c++ -stdlib=libc++ $(5) -MD -c '$$<' -o '$$@'
endef

# Generates rule to build precompiled headers file.
Expand Down
12 changes: 6 additions & 6 deletions make/framework.mk
Original file line number Diff line number Diff line change
Expand Up @@ -119,14 +119,14 @@ $(FRAMEWORK_HEADER):
echo '#include <'$${f}'>'; done >> $@

test_warnings: $(FRAMEWORK_HEADER)
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c -std=c11 $@
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c -std=c11 \
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c $@
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c \
-fobjc-arc -fobjc-arc-exceptions $@
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c -std=c11 -fno-objc-arc $@
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c++ -std=c++11 $@
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c++ -std=c++11 \
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c -fno-objc-arc $@
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c++ $@
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c++ \
-fobjc-arc -fobjc-arc-exceptions $@
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c++ -std=c++11 \
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c++ \
-fno-objc-arc $@
@rm $(FRAMEWORK_HEADER:%.h=%.o)

Expand Down

0 comments on commit d1634c8

Please sign in to comment.