1/************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22#************************************************************************* 23# 24# The Contents of this file are made available subject to the terms of 25# the BSD license. 26# 27# Copyright 2000, 2010 Oracle and/or its affiliates. 28# All rights reserved. 29# 30# Redistribution and use in source and binary forms, with or without 31# modification, are permitted provided that the following conditions 32# are met: 33# 1. Redistributions of source code must retain the above copyright 34# notice, this list of conditions and the following disclaimer. 35# 2. Redistributions in binary form must reproduce the above copyright 36# notice, this list of conditions and the following disclaimer in the 37# documentation and/or other materials provided with the distribution. 38# 3. Neither the name of Sun Microsystems, Inc. nor the names of its 39# contributors may be used to endorse or promote products derived 40# from this software without specific prior written permission. 41# 42# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 43# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 44# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 45# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 46# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 47# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 48# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 49# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 50# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 51# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 52# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 53# 54#************************************************************************** 55 56# Builds the ProfUNO cpp binding example of the Developers Guide 57 58PRJ=../../../.. 59SETTINGS=$(PRJ)/settings 60 61include $(SETTINGS)/settings.mk 62include $(SETTINGS)/std.mk 63include $(SETTINGS)/dk.mk 64 65# Define non-platform/compiler specific settings 66SAMPLE_NAME=ProfUnoCppBinding 67SAMPLE_INC_OUT = $(OUT_INC)/$(SAMPLE_NAME) 68SAMPLE_GEN_OUT = $(OUT_MISC)/$(SAMPLE_NAME) 69SAMPLE_OBJ_OUT=$(OUT_OBJ)/$(SAMPLE_NAME) 70 71APP1_NAME=office_connect 72APP1_BINARY=$(OUT_BIN)/$(APP1_NAME)$(EXE_EXT) 73 74APP2_NAME=string_samples 75APP2_BINARY=$(OUT_BIN)/$(APP2_NAME)$(EXE_EXT) 76 77ENV_OFFICE_TYPES=-env:URE_MORE_TYPES=$(URLPREFIX)$(OFFICE_TYPES) 78 79CXXFILES = \ 80 office_connect.cxx \ 81 string_samples.cxx 82 83# Targets 84.PHONY: ALL 85ALL : \ 86 ProUNOCppBindingExample 87 88include $(SETTINGS)/stdtarget.mk 89 90$(SAMPLE_OBJ_OUT)/%.$(OBJ_EXT) : %.cxx $(SDKTYPEFLAG) 91 -$(MKDIR) $(subst /,$(PS),$(@D)) 92 $(CC) $(CC_FLAGS) $(CC_INCLUDES) -I$(SAMPLE_INC_OUT) $(CC_DEFINES) $(CC_OUTPUT_SWITCH)$(subst /,$(PS),$@) $< 93 94$(OUT_BIN)/%$(EXE_EXT) : $(SAMPLE_OBJ_OUT)/%.$(OBJ_EXT) 95 -$(MKDIR) $(subst /,$(PS),$(@D)) 96 -$(MKDIR) $(subst /,$(PS),$(SAMPLE_GEN_OUT)) 97ifeq "$(OS)" "WIN" 98 $(LINK) $(EXE_LINK_FLAGS) /OUT:$@ /MAP:$(SAMPLE_GEN_OUT)/$(subst $(EXE_EXT),.map,$(@F)) \ 99 $< $(CPPUHELPERLIB) $(CPPULIB) $(SALHELPERLIB) $(SALLIB) $(STLPORTLIB) 100else 101 $(LINK) $(EXE_LINK_FLAGS) $(LINK_LIBS) -o $@ $< \ 102 $(CPPUHELPERLIB) $(CPPULIB) $(SALHELPERLIB) $(SALLIB) $(STLPORTLIB) $(STDC++LIB) $(CPPUHELPERDYLIB) $(CPPUDYLIB) $(SALHELPERDYLIB) $(SALDYLIB) 103ifeq "$(OS)" "MACOSX" 104 $(INSTALL_NAME_URELIBS_BIN) $@ 105endif 106endif 107 108$(OUT_BIN)/office_connect$(EXE_EXT) : $(SAMPLE_OBJ_OUT)/office_connect.$(OBJ_EXT) 109 110$(OUT_BIN)/string_samples$(EXE_EXT) : $(SAMPLE_OBJ_OUT)/string_samples.$(OBJ_EXT) 111 112ProUNOCppBindingExample : $(APP1_BINARY) $(APP2_BINARY) 113 @echo -------------------------------------------------------------------------------- 114 @echo Note: For the "$(QM)$(APP1_NAME)$(QM)" example you need a running office listening 115 @echo $(SQM) $(SQM)on port 2083. The example use the defaultBootstrap_InitialComponentContext method and provides 116 @echo $(SQM) $(SQM)the additional office types via the UNO environment variable -env:URE_MORE_TYPES=... 117 @echo $(SQM) $(SQM)Before you can run this example you have to start your office in listening mode. 118 @echo - 119 @echo $(SQM) $(SQM)soffice "$(QM)-accept=socket,host=localhost,port=2083;urp;StarOffice.ServiceManager$(QM)" 120 @echo ----- 121 @echo Please use one of the following commands to execute the examples! 122 @echo - 123 @echo $(MAKE) $(APP1_NAME).run 124 @echo $(MAKE) $(APP2_NAME).run 125 @echo -------------------------------------------------------------------------------- 126 127%.run: $(OUT_BIN)/%$(EXE_EXT) 128 cd $(subst /,$(PS),$(OUT_BIN)) && $(basename $@) 129 130$(API1_NAME).run: $(API1_BINARY) 131 cd $(subst /,$(PS),$(OUT_BIN)) && $(basename $@) $(ENV_OFFICE_TYPES) 132 133.PHONY: clean 134clean : 135 -$(DELRECURSIVE) $(subst /,$(PS),$(SAMPLE_INC_OUT)) 136 -$(DELRECURSIVE) $(subst /,$(PS),$(SAMPLE_GEN_OUT)) 137 -$(DELRECURSIVE) $(subst /,$(PS),$(SAMPLE_OBJ_OUT)) 138 -$(DEL) $(subst \\,\,$(subst /,$(PS),$(OUT_BIN)/$(APP1_NAME)*)) 139 -$(DEL) $(subst \\,\,$(subst /,$(PS),$(OUT_BIN)/$(APP2_NAME)*)) 140