summaryrefslogtreecommitdiffstats
path: root/otherlibs/win32unix/Makefile.nt
blob: b394710010c527230870160c4721782ef4d9505d (plain)
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
!include ../../config/Makefile.nt

# Compilation options
SYSTEM_INCLUDES=\msdev\include
CC=$(BYTECC)
CFLAGS=-I..\..\byterun -I..\unix $(BYTECCCOMPOPTS)
CAMLC=..\..\boot\ocamlrun ..\..\boot\ocamlc -I ..\..\stdlib
CAMLOPT=..\..\boot\ocamlrun ..\..\ocamlopt -I ..\..\stdlib

# Files in this directory
WIN_OBJS = accept.obj bind.obj close_on.obj connect.obj \
  createprocess.obj getpeername.obj getpid.obj \
  getsockname.obj listen.obj mkdir.obj open.obj pipe.obj sendrecv.obj \
  shutdown.obj sleep.obj socket.obj sockopt.obj startup.obj system.obj \
  unixsupport.obj windir.obj winwait.obj

# Files from the ..\unix directory
UNIX_FILES = access.c addrofstr.c chdir.c close.c cst2constr.c \
  cstringv.c dup.c dup2.c envir.c errmsg.c execv.c execve.c execvp.c \
  exit.c getcwd.c gethost.c gethostname.c getproto.c \
  getserv.c gmtime.c lseek.c read.c rename.c rmdir.c \
  socketaddr.c stat.c strofaddr.c time.c unlink.c utimes.c write.c

UNIX_OBJS = $(UNIX_FILES:.c=.obj)

C_OBJS=$(WIN_OBJS) $(UNIX_OBJS)

CAML_OBJS=unix.cmo
CAMLOPT_OBJS=unix.cmx

all: libunix.lib unix.cma

allopt: libunix.lib unix.cmxa

libunix.lib: copy_unix_files io.h $(C_OBJS)
	rm -f libthreads.lib
	$(MKLIB)libunix.lib $(C_OBJS)

copy_unix_files:
	@- cd ..\unix & cp -p -u -v $(UNIX_FILES) ../win32unix
# This requires GNU cp

io.h: $(SYSTEM_INCLUDES)\io.h
	copy $(SYSTEM_INCLUDES)\io.h io.h

unix.cma: $(CAML_OBJS)
	$(CAMLC) -a -linkall -o unix.cma $(CAML_OBJS)

unix.cmxa: $(CAMLOPT_OBJS)
	$(CAMLOPT) -a -linkall -o unix.cmxa $(CAMLOPT_OBJS)

partialclean:
	rm -f *.cm*

clean: partialclean
	rm -f *.lib *.obj
	rm -f $(UNIX_FILES)
	rm -f io.h

install:
	cp libunix.lib $(LIBDIR)/libunix.lib
	cp unix.cmi unix.cma $(LIBDIR)

installopt:
	cp unix.cmxa unix.cmx unix.lib $(LIBDIR)

.SUFFIXES: .ml .mli .cmo .cmi .cmx

.mli.cmi:
	$(CAMLC) -c $(COMPFLAGS) $<

.ml.cmo:
	$(CAMLC) -c $(COMPFLAGS) $<

.ml.cmx:
	$(CAMLOPT) -c $(COMPFLAGS) $<

depend:
	gcc -MM -I../../byterun *.c > .depend
	..\..\boot\ocamlrun ../../tools/ocamldep *.mli *.ml >> .depend

unix.cmi: unix.mli
unix.cmo: unix.cmi

!include .depend