1# 2# %CopyrightBegin% 3# 4# Copyright Ericsson AB 2008-2016. All Rights Reserved. 5# 6# Licensed under the Apache License, Version 2.0 (the "License"); 7# you may not use this file except in compliance with the License. 8# You may obtain a copy of the License at 9# 10# http://www.apache.org/licenses/LICENSE-2.0 11# 12# Unless required by applicable law or agreed to in writing, software 13# distributed under the License is distributed on an "AS IS" BASIS, 14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15# See the License for the specific language governing permissions and 16# limitations under the License. 17# 18# %CopyrightEnd% 19# 20 21include ../vsn.mk 22include ../config.mk 23 24# Darwin os have debug default install of wxWidgets 25FORCED_DEBUG = @FORCED_DEBUG_BUILD@ 26ifeq ($(FORCED_DEBUG),debug) 27override TYPE=debug 28endif 29 30ifneq ($(TYPE),debug) 31override TYPE=opt 32endif 33 34SO_EXT = @SO_EXT@ 35OBJC_CC=@OBJC_CC@ 36OBJC_CFLAGS=@OBJC_CFLAGS@ 37 38GENERAL = wxe_nif wxe_ps_init wxe_main wxe_impl \ 39 wxe_helpers wxe_callback_impl wxe_return wxe_gl 40GENERAL_H = wxe_callback_impl.h wxe_events.h wxe_gl.h \ 41 wxe_helpers.h wxe_impl.h wxe_memory.h wxe_return.h 42 43GENERATED_F = wxe_wrapper_1 wxe_wrapper_2 wxe_wrapper_3 wxe_wrapper_4 \ 44 wxe_wrapper_5 wxe_wrapper_6 wxe_wrapper_7 wxe_wrapper_8 \ 45 wxe_events wxe_init wxe_func_table 46GENERATED_H = gen/wxe_macros.h 47 48GL_H = egl_impl.h gen/gl_finit.h gen/gl_fdefs.h 49 50HAVE_OPENGL = true 51OPENGL_F = gl_nif glu_nif egl_impl 52 53include $(ERL_TOP)/make/target.mk 54include $(ERL_TOP)/make/output.mk 55include $(ERL_TOP)/make/$(TARGET)/otp_ded.mk 56 57ERL_INCS= $(DED_INCLUDES) 58 59SYS_TYPE = @WXERL_SYS_TYPE@ 60 61GENERAL_O = $(GENERAL:%=$(SYS_TYPE)/%.o) 62GENERATED_O = $(GENERATED_F:%=$(SYS_TYPE)/%.o) 63ifeq ($(HAVE_OPENGL), true) 64 GL_OBJECTS = $(OPENGL_F:%=$(SYS_TYPE)/%.o) 65else 66 GL_OBJECTS = 67endif 68 69TARGET_DIR = ../priv/$(SYS_TYPE) 70 71RC_FILE_EXT = @RC_FILE_TYPE@ 72ifeq ($(SYS_TYPE),win32) 73 RC_FILE = $(SYS_TYPE)/wxe_win32.$(RC_FILE_EXT) 74 WEBVIEW_LOADER_DLL_ORIG = @WX_WEBVIEW_DLL@ 75else 76 RC_FILE = 77 WEBVIEW_LOADER_DLL_ORIG = 78endif 79 80ifneq ($(WEBVIEW_LOADER_DLL_ORIG),) 81 WEBVIEW_LOADER_DLL_DEST = ../priv/WebView2Loader.dll 82endif 83 84WX_OBJECTS = $(GENERATED_O) $(GENERAL_O) $(RC_FILE) 85 86OBJECTS = $(WX_OBJECTS) $(GL_OBJECTS) 87 88# -O2 -funroll-loops -ffast-math -fomit-frame-pointer 89 90COMMON_CFLAGS = @DEFS@ $(ERL_INCS) 91 92CC = @CC@ 93CXX = @CXX@ 94LD = $(CXX) 95LDFLAGS = @LDFLAGS@ 96RESCOMP = @WX_RESCOMP@ 97 98ifeq (@WX_HAVE_STATIC_LIBS@,true) 99OPT_WX_LIBS = @WX_LIBS_STATIC@ 100DEBUG_WX_LIBS = @DEBUG_WX_LIBS_STATIC@ 101else 102OPT_WX_LIBS = @WX_LIBS@ 103DEBUG_WX_LIBS = @DEBUG_WX_LIBS@ 104endif 105 106ifeq ($(TYPE),debug) 107WX_CFLAGS = @DEBUG_WX_CFLAGS@ 108CFLAGS = @DEBUG_CFLAGS@ 109WX_CXX_FLAGS = @DEBUG_WX_CXXFLAGS@ 110CXX_FLAGS = @DEBUG_CXXFLAGS@ 111CXX_NO_OPT_FLAGS = @DEBUG_CXXFLAGS@ 112WX_LIBS = $(DEBUG_WX_LIBS) 113else 114WX_CFLAGS = @WX_CFLAGS@ 115CFLAGS = @CFLAGS@ 116WX_CXX_FLAGS = @WX_CXXFLAGS@ 117CXX_FLAGS = @CXXFLAGS@ 118CXX_NO_OPT_FLAGS = @CXXNOOPTFLAGS@ 119WX_LIBS = $(OPT_WX_LIBS) 120endif 121 122GL_LIBS = @GL_LIBS@ 123 124CC_O = $(V_CC) -c $(CFLAGS) $(WX_CFLAGS) $(COMMON_CFLAGS) 125OBJC_CC_O = $(OBJC_CC) -c $(CFLAGS) $(OBJC_CFLAGS) $(WX_CFLAGS) $(COMMON_CFLAGS) 126CXX_O = $(V_CXX) -c $(CXX_FLAGS) $(WX_CXX_FLAGS) $(COMMON_CFLAGS) 127CXX_O_NO_OPT = $(V_CXX) -c $(CXX_NO_OPT_FLAGS) $(WX_CXX_FLAGS) $(COMMON_CFLAGS) 128 129# Targets 130 131opt: $(TARGET_DIR)/wxe_driver$(SO_EXT) $(TARGET_DIR)/erl_gl$(SO_EXT) $(WEBVIEW_LOADER_DLL_DEST) 132 133debug: 134 @${MAKE} TYPE=debug 135 136clean: 137 rm -f $(OBJECTS) 138 rm -f $(TARGET_DIR)/*$(SO_EXT) 139 rm -f *~ erl_crash.dump 140 141complete_clean: 142 rm -f $(OBJECTS) 143 rm -f $(GENERATED_F:%=gen/%.cpp) 144 rm -f gen/gl_funcs.cpp 145 rm -f $(GENERATED_H) 146 rm -f ../priv/*/* 147 rm -f *~ erl_crash.dump 148 rm -f Makefile 149 150docs: 151 152$(GL_OBJECTS): $(GL_H) 153$(WX_OBJECTS): $(GENERATED_H) $(GENERAL_H) 154 155$(SYS_TYPE)/%.o: %.cpp 156 $(V_at)mkdir -p $(SYS_TYPE) 157 $(CXX_O) $< -o $@ 158 159$(SYS_TYPE)/%.o: %.c 160 $(V_at)mkdir -p $(SYS_TYPE) 161 $(CC_O) $< -o $@ 162 163$(SYS_TYPE)/wxe_ps_init.o: wxe_ps_init.c 164 $(V_at)mkdir -p $(SYS_TYPE) 165 $(cc_verbose)$(OBJC_CC_O) $< -o $@ 166 167$(SYS_TYPE)/%.o: gen/%.cpp 168 $(V_at)mkdir -p $(SYS_TYPE) 169 $(CXX_O_NO_OPT) $< -o $@ 170 171$(SYS_TYPE)/%.o: gen/%.c 172 $(V_at)mkdir -p $(SYS_TYPE) 173 $(CC_O) $< -o $@ 174 175$(SYS_TYPE)/wxe_win32.$(RC_FILE_EXT): wxe_win32.rc 176 $(V_at)mkdir -p $(SYS_TYPE) 177 $(RESCOMP) -o $@ $< 178 179$(TARGET_DIR)/wxe_driver$(SO_EXT): $(WX_OBJECTS) 180 $(V_at)mkdir -p $(TARGET_DIR) 181 $(V_LD) $(LDFLAGS) $(WX_OBJECTS) $(WX_LIBS) -o $@ 182 183$(TARGET_DIR)/erl_gl$(SO_EXT): $(GL_OBJECTS) 184 $(V_at)mkdir -p $(TARGET_DIR) 185 $(V_CC) $(LDFLAGS) $(GL_OBJECTS) $(GL_LIBS) -o $@ 186 187$(WEBVIEW_LOADER_DLL_DEST): $(WEBVIEW_LOADER_DLL_ORIG) 188 $(INSTALL_PROGRAM) $< $@ 189 190# ---------------------------------------------------- 191# Release Target 192# ---------------------------------------------------- 193include $(ERL_TOP)/make/otp_release_targets.mk 194release_spec: opt 195 $(INSTALL_DIR) "$(RELSYSDIR)/priv" 196 $(INSTALL_DATA) ../priv/erlang-logo32.png "$(RELSYSDIR)/priv/" 197 $(INSTALL_DATA) ../priv/erlang-logo64.png "$(RELSYSDIR)/priv/" 198 $(INSTALL_DATA) ../priv/erlang-logo128.png "$(RELSYSDIR)/priv/" 199 $(INSTALL_PROGRAM) $(TARGET_DIR)/wxe_driver$(SO_EXT) "$(RELSYSDIR)/priv/" 200 $(INSTALL_PROGRAM) $(TARGET_DIR)/erl_gl$(SO_EXT) "$(RELSYSDIR)/priv/" 201ifneq ($(WEBVIEW_LOADER_DLL_ORIG),) 202 $(INSTALL_PROGRAM) $(WEBVIEW_LOADER_DLL_DEST) "$(RELSYSDIR)/priv/" 203endif 204 205release_docs_spec: 206