summaryrefslogtreecommitdiff
path: root/otherlibs/win32unix/Makefile
blob: 05732c60e9954448818f7ef7eb47094215d9d3d7 (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
#**************************************************************************
#*                                                                        *
#*                                 OCaml                                  *
#*                                                                        *
#*            Xavier Leroy, projet Cristal, INRIA Rocquencourt            *
#*                                                                        *
#*   Copyright 1999 Institut National de Recherche en Informatique et     *
#*     en Automatique.                                                    *
#*                                                                        *
#*   All rights reserved.  This file is distributed under the terms of    *
#*   the GNU Lesser General Public License version 2.1, with the          *
#*   special exception on linking described in the file LICENSE.          *
#*                                                                        *
#**************************************************************************

# Note: since this directory is Windows-specific, it may be good to make sure
# its content can not be compiled under Unix.
# This directory could even become a subdirectory of the unix directory.

# Files in this directory
WIN_FILES = accept.c bind.c channels.c close.c \
  close_on.c connect.c createprocess.c dup.c dup2.c errmsg.c envir.c \
  getpeername.c getpid.c getsockname.c gettimeofday.c isatty.c \
  link.c listen.c lockf.c lseek.c nonblock.c \
  mkdir.c mmap.c open.c pipe.c read.c readlink.c rename.c \
  select.c sendrecv.c \
  shutdown.c sleep.c socket.c sockopt.c startup.c stat.c \
  symlink.c system.c times.c unixsupport.c windir.c winwait.c write.c \
  winlist.c winworker.c windbug.c utimes.c

# Files from the ../unix directory
UNIX_FILES = access.c addrofstr.c chdir.c chmod.c cst2constr.c \
  cstringv.c execv.c execve.c execvp.c \
  exit.c getaddrinfo.c getcwd.c gethost.c gethostname.c \
  getnameinfo.c getproto.c \
  getserv.c gmtime.c mmap_ba.c putenv.c rmdir.c \
  socketaddr.c strofaddr.c time.c unlink.c

UNIX_CAML_FILES = unix.mli unixLabels.mli unixLabels.ml

ALL_FILES=$(WIN_FILES) $(UNIX_FILES)

LIBNAME=unix
COBJS=$(ALL_FILES:.c=.$(O))
CAMLOBJS=unix.cmo unixLabels.cmo
WIN32_LIBS=$(call SYSLIB,ws2_32) $(call SYSLIB,advapi32)
LINKOPTS=$(addprefix -cclib ,$(WIN32_LIBS))
EXTRACAMLFLAGS=-nolabels
EXTRACFLAGS=-I../unix
HEADERS=unixsupport.h socketaddr.h


include ../Makefile

ifeq "$(SYSTEM)" "mingw"
LDOPTS=-ldopt "-link -static-libgcc" $(addprefix -ldopt ,$(WIN32_LIBS))
else
LDOPTS=$(addprefix -ldopt ,$(WIN32_LIBS))
endif

clean::
	rm -f $(UNIX_FILES) $(UNIX_CAML_FILES)

$(UNIX_FILES) $(UNIX_CAML_FILES): %: ../unix/%
	cp ../unix/$* $*

.PHONY: depend
ifeq "$(TOOLCHAIN)" "msvc"
depend:
	$(error Dependencies cannot be regenerated using the MSVC ports)
else
depend: $(ALL_FILES) $(UNIX_CAML_FILES) unix.ml
	$(CC) -MM $(OC_CPPFLAGS) -I../unix $(ALL_FILES) \
	  | sed -e 's/\.o/.$$(O)/g' > .depend
	$(CAMLRUN) $(ROOTDIR)/tools/ocamldep -slash $(UNIX_CAML_FILES) \
	  unix.ml >> .depend
endif

include .depend