File: Makefile

package info (click to toggle)
ocamlsdl 0.9.1-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 1,608 kB
  • sloc: ansic: 3,311; sh: 3,103; ml: 2,111; makefile: 180; awk: 13
file content (136 lines) | stat: -rw-r--r-- 4,368 bytes parent folder | download | duplicates (4)
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
128
129
130
131
132
133
134
135
136
include ../makefile.platform
include ../makefile.config.$(OCAML_C_BACKEND)
include ../makefile.rules

OMLFLAGS = -unsafe
MLFLAGS  = -g

sdl_MODULES = sdl sdlcdrom sdltimer sdljoystick \
	      sdlkey sdlmouse sdlevent sdlvideo sdlwm \
              $(if $(LABLGLDIR),sdlgl)
sdl_C_SRC    = common.c sdlrwops_stub.c

loader_MODULES = sdlloader
mixer_MODULES  = sdlmixer
ttf_MODULES    = sdlttf
gfx_MODULES    = sdlgfx

TARGETS  = sdl.cma $(patsubst %,sdl%.cma,$(PARTS))
TARGETS += libsdlstub.$(A) $(patsubst %,libsdl%stub.$(A),$(PARTS))
ifneq ($(OCAMLOPT),no)
TARGETS += sdl.cmxa $(patsubst %,sdl%.cmxa,$(PARTS))
endif

all : $(TARGETS)

sdl.cma : $(call ML_OBJS,sdl)
	$(call MKCMA,sdl,sdlstub,$^,$(SDL_LIBS))
sdl.cmxa : $(call ML_OPT_OBJS,sdl)
	$(call MKCMXA,sdl,sdlstub,$^,$(SDL_LIBS))
libsdlstub.$(A) dllsdlstub.so : $(call STUB_OBJS,sdl)
	$(call MKCLIB,sdl,sdlstub,$^,$(SDL_LIBS))

sdlloader.cma : $(call ML_OBJS,loader)
	$(call MKCMA,sdlloader,sdlloaderstub,$^,$(call SYSLIB,SDL_image))
sdlloader.cmxa : $(call ML_OPT_OBJS,loader)
	$(call MKCMXA,sdlloader,sdlloaderstub,$^,$(call SYSLIB,SDL_image))
libsdlloaderstub.$(A) dllsdlloaderstub.so : $(call STUB_OBJS,loader)
	$(call MKCLIB,sdlloader,sdlloaderstub,$^,$(call SYSLIB,SDL_image))

sdlmixer.cma : $(call ML_OBJS,mixer)
	$(call MKCMA,sdlmixer,sdlmixerstub,$^,$(call SYSLIB,SDL_mixer))
sdlmixer.cmxa : $(call ML_OPT_OBJS,mixer)
	$(call MKCMXA,sdlmixer,sdlmixerstub,$^,$(call SYSLIB,SDL_mixer))
libsdlmixerstub.$(A) dllsdlmixerstub.so : $(call STUB_OBJS,mixer)
	$(call MKCLIB,sdlmixer,sdlmixerstub,$^,$(call SYSLIB,SDL_mixer))

sdlttf.cma : $(call ML_OBJS,ttf)
	$(call MKCMA,sdlttf,sdlttfstub,$^,$(call SYSLIB,SDL_ttf))
sdlttf.cmxa : $(call ML_OPT_OBJS,ttf)
	$(call MKCMXA,sdlttf,sdlttfstub,$^,$(call SYSLIB,SDL_ttf))
libsdlttfstub.$(A) dllsdlttfstub.so : $(call STUB_OBJS,ttf)
	$(call MKCLIB,sdlttf,sdlttfstub,$^,$(call SYSLIB,SDL_ttf))

sdlgfx.cma : $(call ML_OBJS,gfx)
	$(call MKCMA,sdlgfx,sdlgfxstub,$^,$(call SYSLIB,SDL_gfx))
sdlgfx.cmxa : $(call ML_OPT_OBJS,gfx)
	$(call MKCMXA,sdlgfx,sdlgfxstub,$^,$(call SYSLIB,SDL_gfx))
libsdlgfxstub.$(A) dllsdlgfxstub.so : $(call STUB_OBJS,gfx)
	$(call MKCLIB,sdlgfx,sdlgfxstub,$^,$(call SYSLIB,SDL_gfx))


LABLGLINC = $(if $(LABLGLDIR),-I $(LABLGLDIR))
sdlgl.cm% :  MLINC=$(LABLGLINC)

ifdef INSTALL
INSTALL_DIR = $(DESTDIR)$(OCAMLSDLDIR)
INSTALL_TARGETS = $(if $(OCAMLFIND), \
                    install-findlib, \
                    install-byte $(if $(OCAMLOPT),install-opt) $(if $(OCAMLMKLIB),install-dll))
install : all $(INSTALL_TARGETS)
install-byte:
	$(INSTALL) -d $(INSTALL_DIR)
	$(INSTALL_DATA) *.cma lib*.$(A) *.cmi *.mli $(INSTALL_DIR)
ifeq ($(PLATFORM),Apple)
	$(RANLIB) $(INSTALL_DIR)/lib*.$(A)
endif
install-opt:
	$(INSTALL_DATA) *.cmxa sdl*.$(A) *.cmx $(INSTALL_DIR)
ifeq ($(PLATFORM),Apple)
	$(RANLIB) $(INSTALL_DIR)/sdl*.$(A)
endif
install-dll:
	$(INSTALL) -d $(DESTDIR)$(OCAMLLIBDIR)/stublibs
	$(INSTALL) dll*.so $(DESTDIR)$(OCAMLLIBDIR)/stublibs

ifdef OCAMLFIND
install-findlib :
	$(OCAMLFIND) install sdl ../META \
          *.cma lib*.$(A) *.cmi *.mli \
          $(if $(filter-out no,$(OCAMLOPT)),*.cmxa sdl*.$(A) *.cmx) \
          $(if $(OCAMLMKLIB),dll*.so)
ifeq ($(PLATFORM),Apple)
	$(RANLIB) $$($(OCAMLFIND) printconf destdir)/sdl/*.$(A)
endif
else
install-findlib : ; $(error "findlib is not installed")
endif

.PHONY : install install-byte install-opt install-dll install-findlib
endif

ifdef OCAMLDOC
MLI = $(foreach part,sdl $(PARTS),$(patsubst %.ml,%.mli,$(call ML_SRCS,$(part))))
CMI = $(patsubst %.mli,%.cmi,$(MLI))

doc : ../doc/html/index.html ../doc/ocamlsdl.texi
../doc/html/index.html : $(CMI)
	mkdir -p ../doc/html
	$(OCAMLDOC) -d ../doc/html -html -v -t 'OCamlSDL $(VERSION)' $(LABLGLINC) $(MLI)
../doc/ocamlsdl.texi : $(CMI)
	mkdir -p ../doc
	$(OCAMLDOC) -d ../doc -texi -v -o $@ -t 'OCamlSDL $(VERSION)' $(LABLGLINC) $(MLI)
else
doc : ; $(error "you need ocamldoc to generate the documentation")
endif

clean:
	rm -f *.cm* *.$(OBJEXT) *.$(A) *.so *.do

depend: .depend .depend.c

.depend: $(wildcard *.ml *.mli)
	@echo "making deps..."
	@$(OCAMLDEP) $^ > $@
-include .depend

ifeq ($(OCAML_C_BACKEND),gcc)
.depend_c : $(wildcard *.c)
	@echo "making C deps..."
	@$(CC) $(patsubst -I%,-isystem %,$(CPPFLAGS)) -isystem $(OCAMLLIBDIR) -MM $^ > $@
-include .depend_c
else
include .depend_c
endif

.PHONY: all doc clean depend