Mercurial > dwindows
view Makefile.in @ 2993:392f0b3dd502
Android: Add DW_FEATURE_RENDER_SAFE, initially just for Android.
This will eventually be supported on other platforms that support unsafe
rendering. On Android this moves EXPOSE events off the main thread and is
enabled by default to provide extra safety. Since none of the callbacks
happen on the main thread anymore, this means that none of the threading
functions follow the potentially unsafe code paths that lead to instability.
The trade off is performance, rendering performance, which was already kind
of slow is even worse. I'll look for ways to improve this performance
without sacrificing stability.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Tue, 02 May 2023 11:37:48 +0000 |
parents | 67a1d12cb079 |
children |
line wrap: on
line source
srcdir=@srcdir@ mandir=@mandir@ CC = @CC@ CXX = @CXX@ PLATCCFLAGS = @PLATCCFLAGS@ MLFLAGS = -L. include $(srcdir)/Version.mk CCFLAGS = @CFLAGS@ $(PLATCCFLAGS) @ARCH@ -D@DW_DEFINE@ -DBUILD_DLL -DDW_RESOURCES -DVER_REV=$(VER_REV) CXXFLAGS= 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 .cpp .h .hpp #.c.o: # $(CC) -c $(CCFLAGS) $(INCPATH) -o $@ $< #.cpp.o: # $(CXX) -c $(CXXFLAGS) $(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 dwtestoo 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) -d $(prefix)/share/dwtest; \ $(INSTALL) dwtest $(prefix)/bin; \ $(INSTALL) dwtestoo $(prefix)/bin; \ $(INSTALL) org.dbsoft.dwindows.dwtest.desktop $(prefix)/share/applications/; \ $(INSTALL) image/test.png $(prefix)/share/dwtest; \ $(INSTALL) gtk/file.xpm $(prefix)/share/dwtest; \ $(INSTALL) gtk/folder.xpm $(prefix)/share/dwtest 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)/bin/dwtestoo 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 rm -f $(prefix)/share/dwtest/test.png rm -f $(prefix)/share/dwtest/file.xpm rm -f $(prefix)/share/dwtest/folder.xpm 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 rm -f dwtestoo rm -rf dwtestoo.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)" dwtest "$(CODESIGNIDENTITY)" dwtestoo.o: $(srcdir)/dwtestoo.cpp $(srcdir)/dw.h $(srcdir)/dw.hpp $(CXX) -c $(INCPATH) $(CXXFLAGS) $(CCFLAGS) -o $@ $(srcdir)/dwtestoo.cpp dwtestoo: dwtestoo.o $(CXX) -o dwtestoo dwtestoo.o $(MLFLAGS) -l$(TARGET) $(LFLAGS) -lstdc++ -chmod +x $(srcdir)/mac/finishup.sh -$(srcdir)/mac/finishup.sh "$(srcdir)" dwtestoo "$(CODESIGNIDENTITY)" zip: zip dwindows$(VER_MAJ)$(VER_MIN).zip $(srcdir)/*.txt $(srcdir)/makefile.* \ $(srcdir)/*.c $(srcdir)/dw.h $(srcdir)/dwcompat.h $(srcdir)/*.cpp $(srcdir)/*.hpp \ $(srcdir)/install.sh $(srcdir)/*.in $(srcdir)/*.ac $(srcdir)/configure $(srcdir)/Version.mk \ $(srcdir)/ac*.m4 $(srcdir)/dwindows-config.1 $(srcdir)/config.sub $(srcdir)/config.guess $(srcdir)/image/test.* \ $(srcdir)/win/*.c $(srcdir)/win/*.cpp $(srcdir)/win/*.h $(srcdir)/win/*.ico $(srcdir)/win/*.txt $(srcdir)/win/*.def $(srcdir)/win/*.rc $(srcdir)/win/*.manifest \ $(srcdir)/os2/*.c $(srcdir)/os2/*.ico $(srcdir)/os2/*.txt $(srcdir)/os2/*.def $(srcdir)/os2/*.lnk \ $(srcdir)/gtk/*.c $(srcdir)/gtk3/*.c $(srcdir)/gtk4/*.c $(srcdir)/gtk/*.xpm \ $(srcdir)/mac/Info.* $(srcdir)/mac/PkgInfo $(srcdir)/mac/*.m $(srcdir)/mac/*.sh $(srcdir)/mac/*.png \ $(srcdir)/ios/*.m $(srcdir)/android/*.cpp $(srcdir)/android/*.kt $(srcdir)/android/*.txt $(srcdir)/android/*.xml \ $(srcdir)/debian/control $(srcdir)/debian/rules $(srcdir)/debian/copyright $(srcdir)/debian/compat $(srcdir)/debian/changelog \ $(srcdir)/platform/*.h $(srcdir)/template/*.c dist: (cd $(srcdir)/..;ln -sf dwindows $(SRCDIR)) (cd $(srcdir)/..;tar -cvf - $(SRCDIR)/*.txt $(SRCDIR)/makefile.* $(SRCDIR)/*.c $(SRCDIR)/dw.h $(SRCDIR)/dwcompat.h \ $(SRCDIR)/*.cpp $(SRCDIR)/*.hpp $(SRCDIR)/install.sh $(SRCDIR)/*.in $(SRCDIR)/*.ac $(SRCDIR)/configure $(SRCDIR)/Version.mk \ $(SRCDIR)/ac*.m4 $(SRCDIR)/dwindows-config.1 $(SRCDIR)/config.sub $(SRCDIR)/config.guess $(SRCDIR)/image/test.* \ $(SRCDIR)/win/*.c $(SRCDIR)/win/*.cpp $(SRCDIR)/win/*.h $(SRCDIR)/win/*.txt $(SRCDIR)/win/*.def $(SRCDIR)/win/*.ico $(SRCDIR)/win/*.rc $(SRCDIR)/win/*.manifest \ $(SRCDIR)/os2/*.c $(SRCDIR)/os2/*.ico $(SRCDIR)/os2/*.txt $(SRCDIR)/os2/*.def $(SRCDIR)/os2/*.lnk \ $(SRCDIR)/gtk/*.c $(SRCDIR)/gtk3/*.c $(SRCDIR)/gtk4/*.c $(SRCDIR)/gtk/*.xpm \ $(SRCDIR)/mac/Info.* $(SRCDIR)/mac/PkgInfo $(SRCDIR)/mac/*.m $(SRCDIR)/mac/*.sh $(SRCDIR)/mac/*.png \ $(SRCDIR)/ios/*.m $(SRCDIR)/android/*.cpp $(SRCDIR)/android/*.kt $(SRCDIR)/android/*.txt $(SRCDIR)/android/*.xml \ $(SRCDIR)/debian/control $(SRCDIR)/debian/rules $(SRCDIR)/debian/copyright $(SRCDIR)/debian/compat $(SRCDIR)/debian/changelog \ $(SRCDIR)/platform/*.h $(SRCDIR)/template/*.c | gzip > $(SRCDIR).tar.gz ) (cd $(srcdir)/..;rm -f $(SRCDIR))