view Makefile.in @ 2323:4b04943319c5

GTK4: Move a few more functions into thread safety. Add API to functions that were missing it. API is used for speficying calling convention, that isn't usually required on Unix, but should be there for future use. The thread safety macros will automatically add API, so just required to add it to ones not in the thread safety system.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Wed, 17 Feb 2021 06:21:27 +0000
parents 9f336ce185fd
children 8a12b4caf6b9
line wrap: on
line source

srcdir=@srcdir@
mandir=@mandir@
CC	=	@CC@
PLATCCFLAGS = @PLATCCFLAGS@
MLFLAGS	=	-L.
include $(srcdir)/Version
CCFLAGS = @CFLAGS@ $(PLATCCFLAGS) @ARCH@ -D@DW_DEFINE@ -DBUILD_DLL -DDW_RESOURCES -DVER_REV=$(VER_REV)
LFLAGS	=	@LIBS@ @ARCH@
ARFLAGS = @ARFLAGS@
INSTALL =	@INSTALL@
DW_SRC  =	@DW_SRC@
DW_DIR  =	@DW_DIR@
INCPATH	=	-I.. -I. -I$(srcdir)
TARGET	=	@TARGET@
SRCS	=	$(srcdir)/$(DW_DIR)/$(DW_SRC)
BROWSER_OBJECT=@BROWSER_OBJECT@
COMPAT_OBJECT =@COMPAT_OBJECT@
INSTALL_COMPAT=@INSTALL_COMPAT@
INSTALL_TEST  =@INSTALL_TEST@
OBJECTS	=	dw.o $(BROWSER_OBJECT)
SRCS2	=	$(srcdir)dwcompat.c
OBJECTS2=	$(COMPAT_OBJECT)
TARGET2=	@TARGET2@
TARGETS = @TARGETS@
VER_MAJ	=	$(DW_MAJOR_VERSION)
VER_MIN	=	$(DW_MINOR_VERSION)
VER_REV =	@SVNVERSION@
SOSUFFIX=	@SOSUFFIX@
SONAME=	@SONAME@
LIBPREFIX = @LIBPREFIX@
LIBSUFFIX = @LIBSUFFIX@
prefix	=	$(DESTDIR)@prefix@
SRCDIR=dwindows-$(VER_MAJ).$(VER_MIN)

#.SUFFIXES:	.c .h

#.c.o:
#	$(CC) -c $(CCFLAGS) $(INCPATH) -o $@ $<


# Link flags shared objects
SYSCONF_LFLAGS_SHOBJ	= @SHAREDFLAG@

# Linking shared libraries
#   - Build the $(TARGET) library, eg. lib$(TARGET).so.0.0
#   - Usually needs to incorporate $(VER_MAJ) and $(VER_MIN)
#
SYSCONF_LINK_SHLIB	= @CC@
SYSCONF_LINK_TARGET_SHARED = @SYSCONF_LINK_TARGET_SHARED@
SYSCONF_LINK_LIB_SHARED	=  $(SYSCONF_LINK_SHLIB) $(SYSCONF_LFLAGS_SHOBJ) \
				     -o $(SYSCONF_LINK_TARGET_SHARED) \
				     $(OBJECTS) $(LFLAGS) $(SONAME); \
				 rm -f lib$(TARGET).$(SOSUFFIX) lib$(TARGET).$(SOSUFFIX).$(VER_MAJ); \
				 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).$(SOSUFFIX); \
				 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).$(SOSUFFIX).$(VER_MAJ)

SYSCONF_LINK_TARGET_SHARED2 = @SYSCONF_LINK_TARGET_SHARED2@
SYSCONF_LINK_LIB_SHARED2 =  $(SYSCONF_LINK_SHLIB) $(SYSCONF_LFLAGS_SHOBJ) \
				     -o $(SYSCONF_LINK_TARGET_SHARED2) \
				     $(OBJECTS2) $(LFLAGS); \
				 rm -f lib$(TARGET2).$(SOSUFFIX) lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ); \
				 ln -s $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).$(SOSUFFIX); \
				 ln -s $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ)


# Linking static libraries
#   - Build the $(TARGET) library, eg. lib$(TARGET).a
#
SYSCONF_AR		= ar $(ARFLAGS)
SYSCONF_LINK_TARGET_STATIC = @SYSCONF_LINK_TARGET_STATIC@
SYSCONF_LINK_LIB_STATIC	= rm -f $(SYSCONF_LINK_TARGET_STATIC) ; \
				 $(SYSCONF_AR) $(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS)



####### Build rules

SYSCONF_LINK_TARGET = $(SYSCONF_LINK_TARGET_SHARED)
SYSCONF_LINK_LIB = $(SYSCONF_LINK_LIB_SHARED)

SYSCONF_LINK_TARGET2 = $(SYSCONF_LINK_TARGET_SHARED2)
SYSCONF_LINK_LIB2 = $(SYSCONF_LINK_LIB_SHARED2)

all: $(TARGETS) dwtest

install: installbase $(INSTALL_COMPAT) $(INSTALL_TEST)

installbase: $(SYSCONF_LINK_TARGET)
	$(INSTALL) -d $(prefix)/include; \
	$(INSTALL) -d $(prefix)/lib; \
	$(INSTALL) -d $(prefix)/bin; \
	$(INSTALL) -d $(prefix)/share/man/man1; \
	$(INSTALL) -d $(prefix)/lib/pkgconfig; \
	$(INSTALL) $(srcdir)/dw.h $(prefix)/include; \
	sed -e 's/@DW_MAJOR_VERSION@/'$(VER_MAJ)'/' -e 's/@DW_MINOR_VERSION@/'$(VER_MIN)'/' -e 's/@DW_SUB_VERSION@/'$(VER_REV)'/' < dwindows-config1 > dwindows-config
	$(INSTALL) dwindows-config $(prefix)/bin; \
	sed -e 's/@VERSION@/'$(VER_MAJ).$(VER_MIN).$(VER_REV)'/' < dwindows1.pc > dwindows.pc
	$(INSTALL) dwindows.pc $(prefix)/lib/pkgconfig; \
	$(INSTALL) $(srcdir)/dwindows-config.1 $(prefix)/share/man/man1; \
	cd $(prefix)/share/man/man1; gzip -f -9 dwindows-config.1
	$(INSTALL) $(SYSCONF_LINK_TARGET)  $(prefix)/lib; \
	cd $(prefix)/lib; \
	rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ); \
	ln -sf $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).$(SOSUFFIX); \
	ln -sf $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).$(SOSUFFIX).$(VER_MAJ)

installdwtest: dwtest
	$(INSTALL) -d $(prefix)/bin; \
	$(INSTALL) -d $(prefix)/share/applications; \
	$(INSTALL) dwtest $(prefix)/bin; \
	$(INSTALL) org.dbsoft.dwindows.dwtest.desktop $(prefix)/share/applications/

installdwcompat: $(SYSCONF_LINK_TARGET2)
	$(INSTALL) -d $(prefix)/lib; \
	$(INSTALL) $(SYSCONF_LINK_TARGET2) $(prefix)/lib; \
	$(INSTALL) $(srcdir)/dwcompat.h $(prefix)/include; \
	$(INSTALL) $(srcdir)/dwconfig.h $(prefix)/include; \
	cd $(prefix)/lib; \
	rm -f lib$(TARGET2).$(SOSUFFIX) lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ); \
	ln -sf $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).$(SOSUFFIX); \
	ln -sf $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ)

uninstall:
	rm -f $(prefix)/lib/lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ)
	rm -f $(prefix)/lib/lib$(TARGET2).$(SOSUFFIX)
	rm -f $(prefix)/lib/lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ).$(VER_MIN)
	rm -f $(prefix)/lib/lib$(TARGET).$(SOSUFFIX).$(VER_MAJ)
	rm -f $(prefix)/lib/lib$(TARGET).$(SOSUFFIX)
	rm -f $(prefix)/lib/lib$(TARGET).$(SOSUFFIX).$(VER_MAJ).$(VER_MIN)
	rm -f $(prefix)/lib/pkgconfig/dwindows.pc
	rm -f $(prefix)/bin/dwindows-config
	rm -f $(prefix)/bin/dwtest
	rm -f $(prefix)/include/dwcompat.h
	rm -f $(prefix)/include/dwconfig.h
	rm -f $(prefix)/include/dw.h
	rm -f $(prefix)/share/applications/org.dbsoft.dwindows.dwtest.desktop
	rm -f $(prefix)/share/man/man1/dwindows-config.1.gz

deb: dist
	-rm -fr tmp
	-mkdir tmp
	(cd tmp;tar zxvf ../../$(srcdir)/$(SRCDIR).tar.gz;cd $(SRCDIR);dpkg-buildpackage -rfakeroot;cd ..;ls -l)

distclean: clean
	rm -f config.status config.log dwconfig.h
	rm -f dwindows-config dwindows-config1 dwindows.pc dwindows1.pc
	rm -f org.dbsoft.dwindows.dwtest.desktop
	rm -f Makefile

clean:
	rm -f *.$(SOSUFFIX)
	rm -f *.$(SOSUFFIX).*
	rm -f *.o
	rm -f *~
	rm -f *.a
	rm -f $(DW_DIR)/*.o
	rm -f dwtest
	rm -rf dwtest.app

$(SYSCONF_LINK_TARGET2): $(OBJECTS2)
	$(SYSCONF_LINK_LIB2)

$(SYSCONF_LINK_TARGET): $(OBJECTS)
	$(SYSCONF_LINK_LIB)

$(SYSCONF_LINK_TARGET_STATIC): $(OBJECTS)
	$(SYSCONF_LINK_LIB_STATIC)

dw.o: $(srcdir)/$(DW_DIR)/$(DW_SRC) $(srcdir)/dw.h
	$(CC) -c $(INCPATH) $(CCFLAGS) -o $@ $(srcdir)/$(DW_DIR)/$(DW_SRC)

browser.o: $(srcdir)/$(DW_DIR)/browser.cpp $(srcdir)/dw.h
	$(CXX) -c $(INCPATH) $(CCFLAGS) -o $@ $(srcdir)/$(DW_DIR)/browser.cpp

dwcompat.o: $(srcdir)/dwcompat.c
	$(CC) -c $(INCPATH) $(CCFLAGS) -o $@ $(srcdir)/dwcompat.c

dwtest.o: $(srcdir)/dwtest.c $(srcdir)/dw.h
	$(CC) -c $(INCPATH) $(CCFLAGS) -o $@ $(srcdir)/dwtest.c

dwtest: dwtest.o
	$(CC) -o dwtest dwtest.o $(MLFLAGS) -l$(TARGET) $(LFLAGS)
	-chmod +x $(srcdir)/mac/finishup.sh
	-$(srcdir)/mac/finishup.sh $(srcdir)

zip:
	zip dwindows$(VER_MAJ)$(VER_MIN).zip $(srcdir)/license.txt $(srcdir)/makefile.* $(srcdir)/readme.txt $(srcdir)/*.c $(srcdir)/dw.h  $(srcdir)/dwcompat.h \
	$(srcdir)/win/*.def $(srcdir)/os2/*.def $(srcdir)/install.sh $(srcdir)/*.in $(srcdir)/configure \
	$(srcdir)/ac*.m4 $(srcdir)/dwindows-config.1 $(srcdir)/Version \
	$(srcdir)/gtk/*.c $(srcdir)/gtk/*.cpp $(srcdir)/win/*.c $(srcdir)/os2/*.c $(srcdir)/win/*.txt $(srcdir)/os2/*.txt \
	$(srcdir)/gtk/*.xpm $(srcdir)/win/*.ico $(srcdir)/os2/*.ico $(srcdir)/mac/*.png \
	$(srcdir)/mac/Info.plist $(srcdir)/mac/PkgInfo $(srcdir)/mac/*.m $(srcdir)/mac/finishup.sh \
	$(srcdir)/platform/*.h \
	$(srcdir)/debian/control $(srcdir)/debian/rules $(srcdir)/debian/copyright $(srcdir)/debian/compat $(srcdir)/debian/changelog

dist:
	(cd $(srcdir)/..;ln -sf dwindows $(SRCDIR))
	(cd $(srcdir)/..;tar -cvf - $(SRCDIR)/license.txt $(SRCDIR)/makefile.* $(SRCDIR)/readme.txt $(SRCDIR)/*.c $(SRCDIR)/dw.h $(SRCDIR)/dwcompat.h \
	$(SRCDIR)/install.sh $(SRCDIR)/*.in $(SRCDIR)/configure $(SRCDIR)/Version \
	$(SRCDIR)/ac*.m4 $(SRCDIR)/dwindows-config.1 $(SRCDIR)/config.sub $(SRCDIR)/config.guess $(SRCDIR)/image/test.* \
	$(SRCDIR)/win/*.c $(SRCDIR)/win/*.cpp $(SRCDIR)/win/*.manifest $(SRCDIR)/win/*.txt $(SRCDIR)/win/*.def $(SRCDIR)/win/*.ico $(SRCDIR)/win/*.rc \
	$(SRCDIR)/os2/*.c $(SRCDIR)/os2/*.txt $(SRCDIR)/os2/*.def $(SRCDIR)/os2/*.ico \
	$(SRCDIR)/gtk/*.c $(SRCDIR)/gtk3/*.c $(SRCDIR)/gtk/*.xpm \
	$(SRCDIR)/mac/Info.plist $(SRCDIR)/mac/PkgInfo $(SRCDIR)/mac/*.m $(SRCDIR)/mac/finishup.sh $(SRCDIR)/mac/*.png \
	$(SRCDIR)/debian/control $(SRCDIR)/debian/rules $(SRCDIR)/debian/copyright $(SRCDIR)/debian/compat $(SRCDIR)/debian/changelog \
	$(SRCDIR)/platform/*.h | gzip > $(SRCDIR).tar.gz )
	(cd $(srcdir)/..;rm -f $(SRCDIR))