File: Makefile

package info (click to toggle)
dmagnetic 0.37-1
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 696 kB
  • sloc: ansic: 11,098; makefile: 82; sh: 6
file content (127 lines) | stat: -rw-r--r-- 4,298 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/usr/bin/make -f 
#
#Copyright 2023, dettus@dettus.net
#
#Redistribution and use in source and binary forms, with or without modification,
#are permitted provided that the following conditions are met:
#
#1. Redistributions of source code must retain the above copyright notice, this 
#   list of conditions and the following disclaimer.
#
#2. Redistributions in binary form must reproduce the above copyright notice, 
#   this list of conditions and the following disclaimer in the documentation 
#   and/or other materials provided with the distribution.
#
#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
#ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
#WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
#DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 
#FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
#DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
#SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
#OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
#OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

PREFIX?=/usr/local
DESTDIR?=/usr/local
MYPREFIX=$(DESTDIR)
INSTALLBIN=$(MYPREFIX)/bin
INSTALLSHARE=$(MYPREFIX)/share/games
INSTALLMAN=$(MYPREFIX)/share/man

CC?=gcc
AR?=ar
#CFLAGS=-g -O0
CFLAGS?=-O3
CFLAGS+=-Wall 
#CFLAGS+=-Werror
#CPPFLAGS+=-DEXPERIMENTAL_SAVEGAME_SLOTS
PROJ_HOME=./
INCFLAGS= -I$(PROJ_HOME)src/frontends/default/ -I$(PROJ_HOME)src/frontends -I$(PROJ_HOME)src/loader -I$(PROJ_HOME)src/libdmagnetic -I$(PROJ_HOME)src/libdmagnetic/vm68k -I$(PROJ_HOME)src/libdmagnetic/linea -I$(PROJ_HOME)src/libdmagnetic/include 
OBJDIR=$(PROJ_HOME)obj/
LINK=$(CC)
LDFLAGS+="-L"$(OBJDIR)

SOURCES_LOADER=	\
	src/loader/loader_appleii.c	\
	src/loader/loader_archimedes.c	\
	src/loader/loader_atarixl.c	\
	src/loader/loader_common.c	\
	src/loader/loader_d64.c		\
	src/loader/loader_dsk.c		\
	src/loader/loader_msdos.c	\
	src/loader/loader_mw.c		\
	src/loader/maggfxloader.c

SOURCES_LIBDMAGNETIC= \
	src/libdmagnetic/dMagnetic.c

SOURCES_LINEA=	\
	src/libdmagnetic/linea/gfxloader.c	\
	src/libdmagnetic/linea/linea.c

SOURCES_VM68K=	\
	src/libdmagnetic/vm68k/vm68k.c	\
	src/libdmagnetic/vm68k/vm68k_decode.c	\
	src/libdmagnetic/vm68k/vm68k_loadstore.c


SOURCES_FRONTEND=	\
	src/frontends/default/configuration.c	\
	src/frontends/default/default_callbacks.c	\
	src/frontends/default/default_palette.c	\
	src/frontends/default/default_render.c	\
	src/frontends/default/helpscreens.c	\
	src/frontends/default/main.c

OBJ_LOADER=${SOURCES_LOADER:.c=.o}
OBJ_ENGINE=${SOURCES_LIBDMAGNETIC:.c=.o}
OBJ_LINEA=${SOURCES_LINEA:.c=.o}
OBJ_VM68K=${SOURCES_VM68K:.c=.o}
OBJ_DEFAULT=${SOURCES_FRONTEND:.c=.o}


all:	dMagnetic dMagnetic.ini
#	strip dMagnetic

clean:
	rm -rf dMagnetic dMagnetic.ini libdmagnetic.a
	rm -rf $(OBJ_LOADER)
	rm -rf $(OBJ_ENGINE)
	rm -rf $(OBJ_LINEA)
	rm -rf $(OBJ_VM68K)
	rm -rf $(OBJ_DEFAULT)

install: all dMagnetic.6 dMagneticini.5
	install -m 755 -d $(INSTALLBIN)
	install -m 755 -d $(INSTALLMAN)/man5/
	install -m 755 -d $(INSTALLMAN)/man6/
	install -m 755 -d $(INSTALLSHARE)/dMagnetic/

	install -m 755 -s dMagnetic $(INSTALLBIN)/dMagnetic
	install -m 644 dMagneticini.5 $(INSTALLMAN)/man5/dMagneticini.5
	install -m 644 dMagnetic.6 $(INSTALLMAN)/man6/dMagnetic.6
	install -m 644 README.txt $(INSTALLSHARE)/dMagnetic/README.txt
	install -m 644 LICENSE.txt $(INSTALLSHARE)/dMagnetic/LICENSE.txt
	cp dMagnetic.ini $(INSTALLSHARE)/dMagnetic/


dMagnetic:	$(OBJ_LOADER) $(OBJ_DEFAULT)  $(OBJ_ENGINE) $(OBJ_LINEA) $(OBJ_VM68K)
	$(LINK) $(LDFLAGS) -o $@ $(OBJ_LOADER)  $(OBJ_ENGINE) $(OBJ_LINEA) $(OBJ_VM68K) $(OBJ_DEFAULT)

dMagnetic.ini:	dMagnetic
	./dMagnetic -helpini >dMagnetic.ini

.c.o:
	$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_EXTRA) $(INCFLAGS) -c -o $@ $<


# initial inkling for a dmagnetic backend library
libdmagnetic.a:	$(OBJ_ENGINE) $(OBJ_LINEA) $(OBJ_VM68K)
	$(AR) rs libdmagnetic.a $(OBJ_ENGINE) $(OBJ_LINEA) $(OBJ_VM68K)	


## in case some post-compilation checks are needed
## if not, please comment out this line
include ./checks.mk