1*b1cdbd2cSJim Jagielski#************************************************************** 2*b1cdbd2cSJim Jagielski# 3*b1cdbd2cSJim Jagielski# Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski# or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski# distributed with this work for additional information 6*b1cdbd2cSJim Jagielski# regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski# to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski# "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski# with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski# 11*b1cdbd2cSJim Jagielski# http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski# 13*b1cdbd2cSJim Jagielski# Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski# software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski# KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski# specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski# under the License. 19*b1cdbd2cSJim Jagielski# 20*b1cdbd2cSJim Jagielski#************************************************************** 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski# MODULE is the name of the module the makefile is located in 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski# declare a library 27*b1cdbd2cSJim Jagielski# LIB is the name of the library as it is found in Repository.mk 28*b1cdbd2cSJim Jagielski$(eval $(call gb_Library_Library,LIB)) 29*b1cdbd2cSJim Jagielski 30*b1cdbd2cSJim Jagielski# declare packages that will be delivered before compilation of LIB 31*b1cdbd2cSJim Jagielski# learn more about TYPE in the Package.mk template 32*b1cdbd2cSJim Jagielski$(eval $(call gb_Library_add_package_headers,LIB,MODULE_TYPE)) 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski# for platforms supporting PCH: declare the location of the pch file 35*b1cdbd2cSJim Jagielski# this is the name of the cxx file (without extension) 36*b1cdbd2cSJim Jagielski$(eval $(call gb_Library_add_precompiled_header,LIB,$(SRCDIR)/MODULE/PCH_FILE)) 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski# in case UNO services are exported: declare location of component file 39*b1cdbd2cSJim Jagielski$(eval $(call gb_Library_set_componentfile,LIB,MODULE/COMPONENT_FILE)) 40*b1cdbd2cSJim Jagielski 41*b1cdbd2cSJim Jagielski# add any additional include paths for this library here 42*b1cdbd2cSJim Jagielski$(eval $(call gb_Library_set_include,LIB,\ 43*b1cdbd2cSJim Jagielski $$(INCLUDE) \ 44*b1cdbd2cSJim Jagielski)) 45*b1cdbd2cSJim Jagielski 46*b1cdbd2cSJim Jagielski# add any additional definitions to be set for compilation here 47*b1cdbd2cSJim Jagielski# (e.g. -DLIB_DLLIMPLEMENTATION) 48*b1cdbd2cSJim Jagielski$(eval $(call gb_Library_set_defs,LIB,\ 49*b1cdbd2cSJim Jagielski $$(DEFS) \ 50*b1cdbd2cSJim Jagielski)) 51*b1cdbd2cSJim Jagielski 52*b1cdbd2cSJim Jagielski# add libraries to be linked to LIB; again these names need to be given as 53*b1cdbd2cSJim Jagielski# specified in Repository.mk 54*b1cdbd2cSJim Jagielski$(eval $(call gb_Library_add_linked_libs,LIB,\ 55*b1cdbd2cSJim Jagielski $(gb_STDLIBS) \ 56*b1cdbd2cSJim Jagielski)) 57*b1cdbd2cSJim Jagielski 58*b1cdbd2cSJim Jagielski# add all source files that shall be compiled with exceptions enabled 59*b1cdbd2cSJim Jagielski# the name is relative to $(SRCROOT) and must not contain an extension 60*b1cdbd2cSJim Jagielski$(eval $(call gb_Library_add_exception_objects,LIB,\ 61*b1cdbd2cSJim Jagielski)) 62*b1cdbd2cSJim Jagielski 63*b1cdbd2cSJim Jagielski# in case sdi files need to be processed: declare "root" (main) sdi target and sdi header target 64*b1cdbd2cSJim Jagielski# "ROOT_SDI_FILE" is the file that is handed over to svidl (all other sdi files are included in the root file) 65*b1cdbd2cSJim Jagielski$(eval $(call gb_Library_add_sdi_headers,LIB,MODULE/sdi/ROOT_SDI_FILE)) 66*b1cdbd2cSJim Jagielski$(eval $(call gb_SdiTarget_SdiTarget,MODULE/sdi/ROOT_SDI_FILE,MODULE/sdi/LIB)) 67*b1cdbd2cSJim Jagielski 68*b1cdbd2cSJim Jagielski# add any additional include paths for sdi processing here 69*b1cdbd2cSJim Jagielski$(eval $(call gb_SdiTarget_set_include,MODULE/sdi/ROOT_SDI_FILE,\ 70*b1cdbd2cSJim Jagielski $$(INCLUDE) \ 71*b1cdbd2cSJim Jagielski)) 72*b1cdbd2cSJim Jagielski 73*b1cdbd2cSJim Jagielski# this is an example how files can be added that require special compiler settings, e.g. building without optimizing 74*b1cdbd2cSJim Jagielskiifeq ($(OS),WNT) 75*b1cdbd2cSJim Jagielski$(eval $(call gb_Library_add_cxxobjects,LIB,\ 76*b1cdbd2cSJim Jagielski MODULE/source/foo/bar \ 77*b1cdbd2cSJim Jagielski , $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \ 78*b1cdbd2cSJim Jagielski)) 79*b1cdbd2cSJim Jagielski 80*b1cdbd2cSJim Jagielskiendif 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski# vim: set noet sw=4 ts=4: 83