purrforce/Makefile

187 lines
5.2 KiB
Makefile

# NMAKE code here \
!ifndef 0 # \
MV=move /Y # \
RM=del /F/Q # \
RMDIR=rmdir /S/Q # \
CP=copy /B/Y # \
PS=\ # \
CAT=type # \
SEVENZ="C:\Program Files\7-Zip\7z.exe" -y # \
SDL2LIB=SDL2.lib # \
SDL2IMGLIB=SDL2_image.lib # \
CCOBJ=cl /nologo /c /Iinclude # \
OBJOUT=/Fo#\
EXEOUT=/Fe#\
CCEXE=cl /nologo /Iinclude # \
#LDFLAGS=SDL2main.lib SDL2.lib shell32.lib /link /subsystem:windows # \
LDFLAGS= kernel32.lib user32.lib shell32.lib /link /subsystem:console # \
RUNPREFIX= # \
USE_TRAY=-DTRAY_WINAPI=1 # \
LINK_TRAY= # \
LINK_SDL= SDL2.lib #\
!else
# Make code here
MV=mv -f
RM=rm -f
CP=cp -f
CAT=cat
PS=/
SEVENZ=7z -y
RMDIR=rm -f
SDL2LIB=SDL2.a
SDL2IMGLIB=SDL2_image.so
CCOBJ=gcc -c -Iinclude
OBJOUT=-o
EXEOUT=-o
CCEXE=gcc -Iinclude
LDFLAGS=
RUNPREFIX=./
USE_TRAY=-DTRAY_APPINDICATOR=1 $(shell pkg-config --cflags appindicator3-0.1)
LINK_TRAY=$(shell pkg-config --libs appindicator3-0.1)
LINK_SDL= SDL2.lib
# \
!endif
check:
@echo MV=$(MV)
@echo RM=$(RM)
@echo CP=$(CP)
@echo CAT=$(CAT)
@echo PS=$(PS)
@echo RMDIR=$(RMDIR)
@echo SEVENZ=$(SEVENZ)
@echo SDL2LIB=$(SDL2LIB)
@echo LDFLAGS=$(LDFLAGS)
@echo if this is correct, run "make purforce"
@echo other options:
@echo all, purforce, clean, reallyclean, distclean
all: purforce
clean:
-@$(RM) build$(PS)*.obj
-@$(RM) sdl2dev.zip
-@$(RM) sdl2imgdev.zip
-@$(RM) SDL2-2.30.0$(PS)*.txt
-@$(RM) SDL2-2.30.0$(PS)docs$(PS)*.md
-@$(RM) SDL2-2.30.0$(PS)docs$(PS)doxyfile
-@$(RMDIR) SDL2-2.30.0$(PS)docs
-@$(RM) SDL2-2.30.0$(PS)cmake$(PS)*.cmake
-@$(RMDIR) SDL2-2.30.0$(PS)cmake
-@$(RM) SDL2-2.30.0$(PS)include$(PS)*.h
-@$(RMDIR) SDL2-2.30.0$(PS)include
-@$(RM) SDL2-2.30.0$(PS)lib$(PS)x64$(PS)*.lib
-@$(RM) SDL2-2.30.0$(PS)lib$(PS)x64$(PS)*.dll
-@$(RMDIR) SDL2-2.30.0$(PS)lib$(PS)x64
-@$(RM) SDL2-2.30.0$(PS)lib$(PS)x86$(PS)*.lib
-@$(RM) SDL2-2.30.0$(PS)lib$(PS)x86$(PS)*.dll
-@$(RMDIR) SDL2-2.30.0$(PS)lib$(PS)x86
-@$(RMDIR) SDL2-2.30.0$(PS)lib
-@$(RMDIR) SDL2-2.30.0
-@$(RM) SDL2_image-2.8.2$(PS)*.txt
-@$(RM) SDL2_image-2.8.2$(PS)cmake$(PS)*.cmake
-@$(RMDIR) SDL2_image-2.8.2$(PS)cmake
-@$(RM) SDL2_image-2.8.2$(PS)lib$(PS)x64$(PS)*.dll
-@$(RM) SDL2_image-2.8.2$(PS)lib$(PS)x64$(PS)*.lib
-@$(RM) SDL2_image-2.8.2$(PS)lib$(PS)x86$(PS)*.dll
-@$(RM) SDL2_image-2.8.2$(PS)lib$(PS)x86$(PS)*.lib
-@$(RMDIR) SDL2_image-2.8.2$(PS)lib$(PS)x64
-@$(RMDIR) SDL2_image-2.8.2$(PS)lib$(PS)x86
-@$(RMDIR) SDL2_image-2.8.2$(PS)lib
-@$(RM) SDL2_image-2.8.2$(PS)include$(PS)*.h
-@$(RMDIR) SDL2_image-2.8.2$(PS)include
-@$(RMDIR) SDL2_image-2.8.2
veryclean:reallyclean
reallyclean: clean
-@$(RM) purforce.exe
-@$(RM) tray.exe
-@$(RM) icon.ico
-@$(RM) pf.ico
-@$(RM) pf.png
-@$(RMDIR) build
distclean: reallyclean
-@$(RM) SDL2.a
-@$(RM) SDL2.lib
-@$(RM) SDL2.dll
-@$(RM) SDL2_image.lib
-@$(RM) SDL2_image.dll
-@$(RM) SDL2main.lib
-@$(RM) include$(PS)*.h
-@$(RMDIR) include
PUR_OBJS= \
build$(PS)main.obj \
build$(PS)error.obj \
build$(PS)stats.obj \
build$(PS)systray.obj \
build$(PS)ms_sleep.obj \
build$(PS)taskmgr.obj \
build$(PS)userpaths.obj
build$(PS)main.obj: build Makefile main.c api.h include$(PS)SDL.h include$(PS)SDL_image.h
$(CCOBJ) main.c $(OBJOUT)$@
build$(PS)stats.obj: build Makefile stats.c api.h include$(PS)SDL.h include$(PS)SDL_image.h
$(CCOBJ) stats.c $(OBJOUT)$@
build$(PS)error.obj: build Makefile api.h error.c
$(CCOBJ) error.c $(OBJOUT)$@
build$(PS)systray.obj: build pf.ico pf.png api.h tray$(PS)tray.h
$(CCOBJ) systray.c $(OBJOUT)$@
build$(PS)ms_sleep.obj: build ms_sleep.c
$(CCOBJ) ms_sleep.c $(OBJOUT)$@
build$(PS)taskmgr.obj: build api.h taskmgr.c
$(CCOBJ) taskmgr.c $(OBJOUT)$@
build$(PS)userpaths.obj: build api.h userpaths.c
$(CCOBJ) userpaths.c $(OBJOUT)$@
build:
mkdir build
pf.ico: images$(PS)pf.ico
$(CP) images$(PS)pf.ico $@
pf.png: images$(PS)pf.png
$(CP) images$(PS)pf.png $@
purforce: purforce.exe
$(RUNPREFIX)purforce.exe
purforce.exe: $(PUR_OBJS) $(SDL2LIB) $(SDL2IMGLIB) Makefile
$(CCEXE) $(PUR_OBJS) $(SDL2IMGLIB) $(EXEOUT)$@ $(LINK_SDL) $(LDFLAGS)
sdl2dev.zip:
$(CP) ..\..\assets\windows\SDL2-devel-2.30.0-VC.zip $@
sdl2imgdev.zip:
$(CP) ..\..\assets\windows\SDL2_image-devel-2.8.2-VC.zip $@
include:
mkdir include
include$(PS)SDL.h: sdl2dev.zip include
$(SEVENZ) x sdl2dev.zip
$(CP) SDL2-2.30.0$(PS)include$(PS)*.h include$(PS)
touch include$(PS)SDL.h
include$(PS)SDL_image.h: sdl2imgdev.zip include
$(SEVENZ) x sdl2imgdev.zip
$(CP) SDL2_image-2.8.2$(PS)include$(PS)*.h include$(PS)
touch include$(PS)SDL_image.h
SDL2_image.lib: sdl2imgdev.zip
$(SEVENZ) x sdl2imgdev.zip
$(CP) SDL2_image-2.8.2\lib\x64\SDL2_image.dll SDL2_image.dll
$(CP) SDL2_image-2.8.2\lib\x64\SDL2_image.lib SDL2_image.lib
touch SDL2_image.lib
SDL2.lib: sdl2dev.zip
$(SEVENZ) x sdl2dev.zip
$(CP) SDL2-2.30.0\lib\x64\SDL2.dll SDL2.dll
$(CP) SDL2-2.30.0\lib\x64\SDL2.lib SDL2.lib
$(CP) SDL2-2.30.0\lib\x64\SDL2main.lib SDL2main.lib
touch SDL2.lib
SDL2.a:
sudo apt-get install sdl2-dev
ln -s /user/local/lib/sdl2/sdl2.so ./SDL2.a
touch SDL2.a
build$(PS)trayxmpl.obj: build tray$(PS)example.c tray$(PS)tray.h
$(CCOBJ) $(USE_TRAY) tray$(PS)example.c $(OBJOUT)$@
icon.ico: tray$(PS)icon.ico
$(CP) tray$(PS)icon.ico $@
tray.exe: build$(PS)trayxmpl.obj icon.ico
$(CCEXE) $(USE_TRAY) build$(PS)trayxmpl.obj $(EXEOUT)$@ $(LINK_TRAY) $(LDFLAGS)
tray: tray.exe
$(RUNPREFIX)tray.exe