view makefile.emx @ 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 2d9521396112
children
line wrap: on
line source

# $Id$

# Dynamic Windows EMX Makefile

CC = gcc
RM = rm -f
RC = rc
MAKE = make
COMPRESS = lxlite
include Version.mk
VER = $(DW_MAJOR_VERSION)$(DW_MINOR_VERSION)
VERDOT = $(DW_MAJOR_VERSION).$(DW_MINOR_VERSION)
AVERREV := $(shell os2\svnrev.cmd)
include SVN.REV

DEFS =
LIBS =

CFLAGS = -O -g -Zomf -Zmt -D__OS2__ -D__ST_MT_ERRNO__ -DUNICODE -DVER_REV=$(VERREV) -I. -Wall -o $(@)
LDFLAGS = -Zdll -static-libgcc
RCFLAGS = -r


COMPATOBJECTS = dwcompat.obj dirent.obj
COMPATSOURCES = dwcompat.c dirent.c

all: dw.dll dwcompat.dll dwtest.exe dwtestoo.exe

dw.dll:  os2\dw.c os2\dw.def
	$(CC) $(CFLAGS) $(DEFS) -o dw.dll os2/dw.c $(LDFLAGS) os2/dw.def

dw.lib: os2\dw.def
	emximp -o dw.lib os2\dw.def

dwcompat.dll:  $(COMPATOBJECTS) os2\dwcompat.def
	$(CC) $(CFLAGS) $(DEFS) -o dwcompat.dll $(COMPATOBJECTS) $(LDFLAGS) -lsocket os2/dwcompat.def

dwcompat.lib: os2\dwcompat.def
	emximp -o dwcompat.lib os2\dwcompat.def

dwtest.exe: dwtest.obj dw.lib dwcompat.lib
	$(CC) $(CFLAGS) -Zomf -Zmt -static-libgcc -Zlinker /pm:pm -o dwtest.exe dwtest.obj -Llib -ldw -ldwcompat os2/dwtest.def

dwtestoo.exe: dwtestoo.obj dw.lib dwcompat.lib
	$(CC) $(CFLAGS) -Zomf -Zmt -static-libgcc -Zlinker /pm:pm -o dwtestoo.exe dwtestoo.obj -Llib -ldw -ldwcompat -lstdc++ os2/dwtest.def


clean:
	$(RM) *.obj *.o *.lib *.res *~ dwtest.exe dwtestoo.exe dw.dll dwcompat.dll SVN.REV

dw.obj: dw.c
	$(CC) $(CFLAGS) -c $<	

dwcompat.obj: dwcompat.c
	$(CC) $(CFLAGS) -c $<	

dirent.obj: os2/dirent.c
	$(CC) $(CFLAGS) -c $<	

dwtest.obj: dwtest.c
	$(CC) $(CFLAGS) -c $<	

dwtestoo.obj: dwtestoo.cpp dw.hpp
	$(CC) $(CFLAGS) -std=c++11 -c $<	


zip: dw.dll
	cp os2/readme-os2.txt .
	zip dwindows-os2-$(VERDOT).zip readme-os2.txt readme.txt dw.dll dwcompat.dll dw.lib dwcompat.lib dw.h dwcompat.h dw.hpp