Makefile.in 5.08 KB

PACKAGE=@PACKAGE_NAME@

SOURCES=main.cxx local.cxx connection.cxx get.cxx set.cxx actions.cxx remote.cxx

prefix=/usr
exec_prefix=@exec_prefix@
libdir=@libdir@
instdir=$(DESTDIR)/$(libdir)/libreoffice/share/extensions/$(PACKAGE)

#---[ Paths ]------------------------------------------------------------------------------------------
ROOTDIR ?= .
OBJDIR  ?= $(ROOTDIR)/.obj
BINDIR  ?= $(ROOTDIR)/.bin

BINDBG  ?= $(BINDIR)/Debug
BINRLS  ?= $(BINDIR)/Release
LIBDBG  ?= $(BINDIR)/Debug/lib

OBJDBG = $(OBJDIR)/Debug
OBJRLS = $(OBJDIR)/Release

#---[ Tools ]------------------------------------------------------------------------------------------
MKDIR=@MKDIR_P@
INSTALL=@INSTALL@
INSTALL_DATA=@INSTALL_DATA@
INSTALL_PROGRAM=@INSTALL_PROGRAM@
CXX=@CXX@
CONVERT=@CONVERT@
ZIP=@ZIP@

DBG_CFLAGS=-g -DDEBUG=1
RLS_CFLAGS=-DNDEBUG=1

#---[ LibreOffice SDK ]--------------------------------------------------------------------------------
COMID=gcc3
OO_SDK_NAME=openoffice.org3.5_sdk
OFFICE_HOME=@OFFICE_HOME@
OO_SDK_HOME=@OO_SDK_HOME@
OO_SDK_URE_HOME=@OO_SDK_URE_HOME@
OO_SDK_URE_BIN_DIR=${OO_SDK_URE_HOME}/bin
OO_SDK_URE_LIB_DIR=${OO_SDK_URE_HOME}/lib

TYPES_RDB=${OO_SDK_URE_HOME}/share/misc/types.rdb

SALLIB=-luno_sal
CPPULIB=-luno_cppu
CPPUHELPERLIB=-luno_cppuhelper$(COMID)
SALHELPERLIB=-luno_salhelper$(COMID)
REGLIB=-lreg
STORELIB=-lstore

# Libre office tools
IDLC=@IDLC@
REGMERGE=@REGMERGE@
CPPUMAKER=@CPPUMAKER@

#---[ Rules ]------------------------------------------------------------------------------------------

LIB3270_CFLAGS ?= `pkg-config --cflags lib3270`

DLL_CFLAGS=@DLL_CFLAGS@
DLL_FLAGS=-shared

CXXFLAGS=-Wno-strict-aliasing -I$(OBJDIR)/uno/include -I$(OO_SDK_HOME)/include \
					-I$(OBJDIR)/uno/include/br/com/bb $(LIB3270_CFLAGS) \
					@DBUS_CFLAGS@

LDFLAGS=-L${OO_SDK_HOME}/lib -L${OO_SDK_URE_HOME}/lib \
		-Wl,-rpath-link=${OO_SDK_URE_HOME}/lib,-rpath=${OO_SDK_URE_HOME}/lib \
		$(CPPULIB) $(CPPUHELPERLIB) $(SALLIB) @DBUS_LIBS@

# CC_DEFINES=-DUNX -DGCC -DLINUX -DCPPU_ENV=$(CPPU_ENV) -DGXX_INCLUDE_PATH=$(SDK_GXX_INCLUDE_PATH) -DHAVE_GCC_VISIBILITY_FEATURE

$(OBJDBG)/%.o: %.cxx $(OBJDIR)/uno/include/br/com/bb/$(PACKAGE).hpp Makefile
	@echo $< ...
	@$(MKDIR) `dirname $@`
	@$(CXX) $(DBG_CFLAGS) $(CXXFLAGS) $(LIB3270_CFLAGS) $(DLL_CFLAGS) -o $@ -c $<

$(OBJRLS)/%.o: %.cxx $(OBJDIR)/uno/include/br/com/bb/$(PACKAGE).hpp Makefile
	@echo $< ...
	@$(MKDIR) `dirname $@`
	@$(CXX) $(CXXFLAGS) $(LIB3270_CFLAGS) $(DLL_CFLAGS) -o $@ -c $<

%.urd: %.idl
	@echo $< ...
	@$(MKDIR) `dirname $@`
	@$(IDLC) -C -I$(OO_SDK_HOME)/idl -O`dirname $@` $<

%.uno.rdb: %.urd $(TYPES_RDB)
	@echo $< ...
	@mkdir -p `dirname $@`
	@rm -f $@
	$(REGMERGE) -v $@ / $(TYPES_RDB)
	$(REGMERGE) -v $@ /UCR $<
	$(REGMERGE) -v $@ / $<


#---[ Release targets ]--------------------------------------------------------------------------------

Release: $(BINDIR)/$(PACKAGE).oxt

install: $(BINRLS)/$(PACKAGE).uno@DLLEXT@ $(PACKAGE).uno.rdb description.xml manifest.xml description.txt $(PACKAGE).png
	@$(MKDIR) $(instdir)
	@$(MKDIR) $(instdir)/META-INF
	@$(INSTALL_DATA) manifest.xml $(instdir)/META-INF

	@$(INSTALL_DATA) description.xml $(instdir)
	@$(INSTALL_DATA) description.txt $(instdir)

	@$(INSTALL_DATA) $(PACKAGE).png $(instdir)/$(PACKAGE).png

	@$(INSTALL_PROGRAM) $(BINRLS)/$(PACKAGE).uno@DLLEXT@ $(instdir)
	@$(INSTALL_DATA) $(PACKAGE).uno.rdb $(instdir)

$(BINDIR)/$(PACKAGE).oxt: $(BINRLS)/$(PACKAGE).uno@DLLEXT@ $(PACKAGE).uno.rdb description.xml manifest.xml description.txt
	@rm -f $@

	@$(MKDIR) $(BINDIR)/$(PACKAGE).oxt.tmp

	@$(MKDIR) $(BINDIR)/$(PACKAGE).oxt.tmp/META-INF
	@cp manifest.xml $(BINDIR)/$(PACKAGE).oxt.tmp/META-INF

	@cp description.xml $(BINDIR)/$(PACKAGE).oxt.tmp
	@cp description.txt $(BINDIR)/$(PACKAGE).oxt.tmp

	@$(CONVERT) ../pw3270/pixmaps/pw3270.svg --format=png > $(BINDIR)/$(PACKAGE).oxt.tmp/$(PACKAGE).png

	@cp $(BINRLS)/$(PACKAGE).uno@DLLEXT@ $(BINDIR)/$(PACKAGE).oxt.tmp
	@cp $(PACKAGE).uno.rdb $(BINDIR)/$(PACKAGE).oxt.tmp
	@rm -f $(BINDIR)/$(PACKAGE).oxt
	@cd $(BINDIR)/$(PACKAGE).oxt.tmp ; $(ZIP) -r -m ../$(PACKAGE).oxt .
	@echo $@ Ok.

$(BINRLS)/$(PACKAGE).uno@DLLEXT@: $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o)
	@echo $@ ...
	@$(MKDIR) `dirname $@`
	@$(CXX) $(DLL_FLAGS) $(LDFLAGS) -o $@ $^

$(PACKAGE).png: ../pw3270/pixmaps/pw3270.svg
	@$(CONVERT) $^ --format=png > $@

#---[ Debug Targets ]----------------------------------------------------------------------------------

Debug: $(BINDBG)/testprogram

run: $(BINDBG)/testprogram
	@$(BINDBG)/testprogram

$(BINDBG)/$(PACKAGE).uno@DLLEXT@: $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o)
	@echo $@ ...
	@$(MKDIR) `dirname $@`
	@$(CXX) $(DLL_FLAGS) $(LDFLAGS) -o $@ $^

$(BINDBG)/testprogram: $(BINDBG)/$(PACKAGE).uno@DLLEXT@ $(OBJDBG)/testprogram.o
	@echo $@ ...
	@$(MKDIR) `dirname $@`
	@$(CXX) $(LDFLAGS) -o $@ $(OBJDBG)/testprogram.o

$(OBJDIR)/uno/include/br/com/bb/$(PACKAGE).hpp: $(PACKAGE).uno.rdb
	@echo $< ...
	@rm -fr $(OBJDIR)/uno/include
	@$(MKDIR) $(OBJDIR)/uno/include
	@$(CPPUMAKER) -O$(OBJDIR)/uno/include -L -BUCR $<
	@touch $@

cleanDebug: clean

clean:
	@rm -f *.urd
	@rm -f *.uno.rdb
	@rm -f $(PACKAGE).png
	@rm -fr $(OBJDIR)
	@rm -fr $(BINDIR)