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_driver wxe_ps_init wxe_main wxe_impl wxe_helpers wxe_callback_impl wxe_return wxe_gl 39GENERAL_H = wxe_callback_impl.h wxe_driver.h wxe_events.h wxe_gl.h \ 40 wxe_helpers.h wxe_impl.h wxe_memory.h wxe_return.h 41 42GENERATED_F = wxe_funcs wxe_events wxe_init 43GENERATED_H = gen/wxe_macros.h 44 45GL_H = egl_impl.h gen/glu_finit.h gen/gl_finit.h gen/gl_fdefs.h 46 47HAVE_OPENGL = true 48OPENGL_F = gl_funcs egl_impl 49 50include $(ERL_TOP)/make/target.mk 51include $(ERL_TOP)/make/output.mk 52include $(ERL_TOP)/make/$(TARGET)/otp_ded.mk 53 54ERL_INCS= $(DED_INCLUDES) 55 56SYS_TYPE = @WXERL_SYS_TYPE@ 57 58GENERAL_O = $(GENERAL:%=$(SYS_TYPE)/%.o) 59GENERATED_O = $(GENERATED_F:%=$(SYS_TYPE)/%.o) 60ifeq ($(HAVE_OPENGL), true) 61 GL_OBJECTS = $(OPENGL_F:%=$(SYS_TYPE)/%.o) 62else 63 GL_OBJECTS = 64endif 65 66RC_FILE_EXT = @RC_FILE_TYPE@ 67ifeq ($(SYS_TYPE),win32) 68RC_FILE = $(SYS_TYPE)/wxe_win32.$(RC_FILE_EXT) 69else 70RC_FILE = 71endif 72 73WX_OBJECTS = $(GENERATED_O) $(GENERAL_O) $(RC_FILE) 74 75OBJECTS = $(WX_OBJECTS) $(GL_OBJECTS) 76 77TARGET_DIR = ../priv/$(SYS_TYPE) 78 79# -O2 -funroll-loops -ffast-math -fomit-frame-pointer 80 81COMMON_CFLAGS = @DEFS@ $(ERL_INCS) 82 83CC = @CC@ 84CXX = @CXX@ 85LD = $(CXX) 86LDFLAGS = @LDFLAGS@ 87RESCOMP = @WX_RESCOMP@ 88 89ifeq (@WX_HAVE_STATIC_LIBS@,true) 90OPT_WX_LIBS = @WX_LIBS_STATIC@ 91DEBUG_WX_LIBS = @DEBUG_WX_LIBS_STATIC@ 92else 93OPT_WX_LIBS = @WX_LIBS@ 94DEBUG_WX_LIBS = @DEBUG_WX_LIBS@ 95endif 96 97ifeq ($(TYPE),debug) 98WX_CFLAGS = @DEBUG_WX_CFLAGS@ 99CFLAGS = @DEBUG_CFLAGS@ 100WX_CXX_FLAGS = @DEBUG_WX_CXXFLAGS@ 101CXX_FLAGS = @DEBUG_CXXFLAGS@ 102CXX_NO_OPT_FLAGS = @DEBUG_CXXFLAGS@ 103WX_LIBS = $(DEBUG_WX_LIBS) 104else 105WX_CFLAGS = @WX_CFLAGS@ 106CFLAGS = @CFLAGS@ 107WX_CXX_FLAGS = @WX_CXXFLAGS@ 108CXX_FLAGS = @CXXFLAGS@ 109CXX_NO_OPT_FLAGS = @CXXNOOPTFLAGS@ 110WX_LIBS = $(OPT_WX_LIBS) 111endif 112 113GL_LIBS = @GL_LIBS@ 114 115CC_O = $(V_CC) -c $(CFLAGS) $(WX_CFLAGS) $(COMMON_CFLAGS) 116OBJC_CC_O = $(OBJC_CC) -c $(CFLAGS) $(OBJC_CFLAGS) $(WX_CFLAGS) $(COMMON_CFLAGS) 117CXX_O = $(V_CXX) -c $(CXX_FLAGS) $(WX_CXX_FLAGS) $(COMMON_CFLAGS) 118CXX_O_NO_OPT = $(V_CXX) -c $(CXX_NO_OPT_FLAGS) $(WX_CXX_FLAGS) $(COMMON_CFLAGS) 119 120# Targets 121 122opt: $(TARGET_DIR)/wxe_driver$(SO_EXT) $(TARGET_DIR)/erl_gl$(SO_EXT) 123 124debug: 125 @${MAKE} TYPE=debug 126 127clean: 128 rm -f $(OBJECTS) 129 rm -f $(TARGET_DIR)/*$(SO_EXT) 130 rm -f *~ erl_crash.dump 131 132complete_clean: 133 rm -f $(OBJECTS) 134 rm -f $(GENERATED_F:%=gen/%.cpp) 135 rm -f gen/gl_funcs.cpp 136 rm -f $(GENERATED_H) 137 rm -f ../priv/*/* 138 rm -f *~ erl_crash.dump 139 rm -f Makefile 140 141docs: 142 143$(GL_OBJECTS): $(GL_H) 144$(WX_OBJECTS): $(GENERATED_H) $(GENERAL_H) 145 146$(SYS_TYPE)/%.o: %.cpp 147 $(V_at)mkdir -p $(SYS_TYPE) 148 $(CXX_O) $< -o $@ 149 150$(SYS_TYPE)/%.o: %.c 151 $(V_at)mkdir -p $(SYS_TYPE) 152 $(CC_O) $< -o $@ 153 154$(SYS_TYPE)/wxe_ps_init.o: wxe_ps_init.c 155 $(V_at)mkdir -p $(SYS_TYPE) 156 $(cc_verbose)$(OBJC_CC_O) $< -o $@ 157 158$(SYS_TYPE)/wxe_funcs.o: gen/wxe_funcs.cpp 159 $(V_at)mkdir -p $(SYS_TYPE) 160 $(CXX_O_NO_OPT) $< -o $@ 161 162$(SYS_TYPE)/%.o: gen/%.cpp 163 $(V_at)mkdir -p $(SYS_TYPE) 164 $(CXX_O) $< -o $@ 165 166$(SYS_TYPE)/%.o: gen/%.c 167 $(V_at)mkdir -p $(SYS_TYPE) 168 $(CC_O) $< -o $@ 169 170$(SYS_TYPE)/wxe_win32.$(RC_FILE_EXT): wxe_win32.rc 171 $(V_at)mkdir -p $(SYS_TYPE) 172 $(RESCOMP) -o $@ $< 173 174$(TARGET_DIR)/wxe_driver$(SO_EXT): $(WX_OBJECTS) 175 $(V_at)mkdir -p $(TARGET_DIR) 176 $(V_LD) $(LDFLAGS) $(WX_OBJECTS) $(WX_LIBS) -o $@ 177 178$(TARGET_DIR)/erl_gl$(SO_EXT): $(GL_OBJECTS) 179 $(V_at)mkdir -p $(TARGET_DIR) 180 $(V_CC) $(LDFLAGS) $(GL_OBJECTS) $(GL_LIBS) -o $@ 181 182 183# ---------------------------------------------------- 184# Release Target 185# ---------------------------------------------------- 186include $(ERL_TOP)/make/otp_release_targets.mk 187release_spec: opt 188 $(INSTALL_DIR) "$(RELSYSDIR)/priv" 189 $(INSTALL_DATA) ../priv/erlang-logo32.png "$(RELSYSDIR)/priv/" 190 $(INSTALL_DATA) ../priv/erlang-logo64.png "$(RELSYSDIR)/priv/" 191 $(INSTALL_DATA) ../priv/erlang-logo128.png "$(RELSYSDIR)/priv/" 192 $(INSTALL_PROGRAM) $(TARGET_DIR)/wxe_driver$(SO_EXT) "$(RELSYSDIR)/priv/" 193 $(INSTALL_PROGRAM) $(TARGET_DIR)/erl_gl$(SO_EXT) "$(RELSYSDIR)/priv/" 194 195release_docs_spec: 196