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 C++ DocumentLoader example of the SDK. 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 66COMPONENT_NAME=DocumentLoader 67 68OUT_COMP_INC = $(OUT_INC)/$(COMPONENT_NAME) 69OUT_COMP_GEN = $(OUT_MISC)/$(COMPONENT_NAME) 70OUT_COMP_OBJ=$(OUT_OBJ)/$(COMPONENT_NAME) 71 72CXXFILES = DocumentLoader.cxx 73 74OBJFILES = $(patsubst %.cxx,$(OUT_SLO_COMP)/%.$(OBJ_EXT),$(CXXFILES)) 75 76ENV_OFFICE_TYPES=-env:URE_MORE_TYPES=$(URLPREFIX)$(OFFICE_TYPES) 77 78# Targets 79.PHONY: ALL 80ALL : \ 81 CppDocumentLoaderExample 82 83include $(SETTINGS)/stdtarget.mk 84 85$(OUT_COMP_OBJ)/%.$(OBJ_EXT) : %.cxx $(SDKTYPEFLAG) 86 -$(MKDIR) $(subst /,$(PS),$(@D)) 87 $(CC) $(CC_FLAGS) $(CC_INCLUDES) -I$(OUT_COMP_INC) $(CC_DEFINES) $(CC_OUTPUT_SWITCH)$(subst /,$(PS),$@) $< 88 89$(OUT_BIN)/DocumentLoader$(EXE_EXT) : $(OUT_COMP_OBJ)/DocumentLoader.$(OBJ_EXT) 90 -$(MKDIR) $(subst /,$(PS),$(@D)) 91 -$(MKDIR) $(subst /,$(PS),$(OUT_COMP_GEN)) 92ifeq "$(OS)" "WIN" 93 $(LINK) $(EXE_LINK_FLAGS) /OUT:$@ /MAP:$(OUT_COMP_GEN)/$(basename $(@F)).map \ 94 $< $(CPPUHELPERLIB) $(CPPULIB) $(SALHELPERLIB) $(SALLIB) $(STLPORTLIB) 95else 96 $(LINK) $(EXE_LINK_FLAGS) $(LINK_LIBS) -o $@ $< \ 97 $(CPPUHELPERLIB) $(CPPULIB) $(SALHELPERLIB) $(SALLIB) $(STLPORTLIB) $(STDC++LIB) $(CPPUHELPERDYLIB) $(CPPUDYLIB) $(SALHELPERDYLIB) $(SALDYLIB) 98ifeq "$(OS)" "MACOSX" 99 $(INSTALL_NAME_URELIBS_BIN) $@ 100endif 101endif 102 103CppDocumentLoaderExample : $(OUT_BIN)/DocumentLoader$(EXE_EXT) 104 @echo -------------------------------------------------------------------------------- 105 @echo The example loads the "$(QM)test.odt$(QM)" document in the DocumentLoader example directory. 106 @echo If you want to load your own document, please use: 107 @echo $(SQM) $(SQM)DocumentLoader -env:URE_MORE_TYPES="$(QM)<fileurl_office_types_rdb>$(QM)" "$(QM)filename$(QM)" [connection_url] 108 @echo - 109 @echo Use the following command to execute the example! 110 @echo - 111 @echo $(MAKE) DocumentLoader.run 112 @echo - 113 @echo NOTE: This example does not use the new UNO bootstrap mechanism, it uses still a socket 114 @echo $(SQM) $(SQM)connection. The example use the defaultBootstrap_InitialComponentContext method and provides 115 @echo $(SQM) $(SQM)the additional office types via the UNO environment variable -env:URE_MORE_TYPES=... 116 @echo $(SQM) $(SQM)Before you can run this example you have to start your office in listening mode. 117 @echo - 118 @echo $(SQM) $(SQM)soffice "$(QM)-accept=socket,host=localhost,port=2083;urp;StarOffice.ServiceManager$(QM)" 119 @echo -------------------------------------------------------------------------------- 120 121%.run: $(OUT_BIN)/DocumentLoader$(EXE_EXT) 122 cd $(subst /,$(PS),$(OUT_BIN)) && $(basename $@) $(ENV_OFFICE_TYPES) $(subst \\,/,$(subst /,$(PS),"$(OO_SDK_HOME)/examples/cpp/DocumentLoader/test.odt")) 123 124.PHONY: clean 125clean : 126 -$(DELRECURSIVE) $(subst /,$(PS),$(OUT_COMP_INC)) 127 -$(DELRECURSIVE) $(subst /,$(PS),$(OUT_COMP_GEN)) 128 -$(DELRECURSIVE) $(subst /,$(PS),$(OUT_COMP_OBJ)) 129 -$(DEL) $(subst \\,\,$(subst /,$(PS),$(OUT_BIN)/DocumentLoader*)) 130