protobuf: compile host protoc as native package

Do not compile host protoc for all target, instead compile it once.
This commit is contained in:
Boris Nagaev 2016-10-23 20:29:30 +03:00
parent f2698622c9
commit 113781a492
3 changed files with 24 additions and 22 deletions

View File

@ -8,6 +8,7 @@ $(PKG)_SUBDIR := googlemock-release-$($(PKG)_VERSION)
$(PKG)_FILE := googlemock-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://github.com/google/googlemock/archive/release-$($(PKG)_VERSION).tar.gz
$(PKG)_DEPS :=
$(PKG)_TARGETS := $(BUILD) $(MXE_TARGETS)
define $(PKG)_UPDATE
$(call MXE_GET_GITHUB_TAGS, google/googlemock, release-)

View File

@ -9,6 +9,7 @@ $(PKG)_SUBDIR := $(PKG)-release-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://github.com/google/$(PKG)/archive/release-$($(PKG)_VERSION).tar.gz
$(PKG)_DEPS :=
$(PKG)_TARGETS := $(BUILD) $(MXE_TARGETS)
define $(PKG)_UPDATE
$(call MXE_GET_GITHUB_TAGS, google/googletest, release-)

View File

@ -8,33 +8,33 @@ $(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://github.com/google/$(PKG)/archive/v$($(PKG)_VERSION).tar.gz
$(PKG)_DEPS := gcc zlib googlemock googletest
$(PKG)_TARGETS := $(BUILD) $(MXE_TARGETS)
$(PKG)_DEPS_$(BUILD) := googlemock googletest
define $(PKG)_UPDATE
$(call MXE_GET_GITHUB_TAGS, google/protobuf, v)
endef
define $(PKG)_BUILD
# Zero step: put googlemock and googletest to the source directory.
$(call PREPARE_PKG_SOURCE,googlemock,$(1))
cd '$(1)' && mv '$(googlemock_SUBDIR)' gmock
$(call PREPARE_PKG_SOURCE,googletest,$(1))
cd '$(1)' && mv '$(googletest_SUBDIR)' gmock/gtest
# First step: Build for host system in order to create "protoc" binary.
cd '$(1)' && ./autogen.sh && ./configure \
--disable-shared
$(MAKE) -C '$(1)' -j '$(JOBS)'
cp '$(1)/src/protoc' '$(PREFIX)/bin/$(TARGET)-protoc'
$(MAKE) -C '$(1)' -j 1 distclean
# Second step: Build for target system.
cd '$(1)' && ./configure \
$(MXE_CONFIGURE_OPTS) \
--with-zlib \
--with-protoc='$(PREFIX)/bin/$(TARGET)-protoc'
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install
$(call PREPARE_PKG_SOURCE,googlemock,$(SOURCE_DIR))
cd '$(SOURCE_DIR)' && mv '$(googlemock_SUBDIR)' gmock
$(call PREPARE_PKG_SOURCE,googletest,$(SOURCE_DIR))
cd '$(SOURCE_DIR)' && mv '$(googletest_SUBDIR)' gmock/gtest
cd '$(SOURCE_DIR)' && ./autogen.sh
'$(TARGET)-g++' \
-W -Wall -Werror -ansi -pedantic \
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-protobuf.exe' \
`'$(TARGET)-pkg-config' protobuf --cflags --libs`
cd '$(BUILD_DIR)' && '$(SOURCE_DIR)'/configure \
$(MXE_CONFIGURE_OPTS) \
$(if $(BUILD_CROSS), \
--with-zlib \
--with-protoc='$(PREFIX)/$(BUILD)/bin/protoc' \
)
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)'
$(MAKE) -C '$(BUILD_DIR)' -j 1 install
$(if $(BUILD_CROSS),
'$(TARGET)-g++' \
-W -Wall -Werror -ansi -pedantic \
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-protobuf.exe' \
`'$(TARGET)-pkg-config' protobuf --cflags --libs`
)
endef