Makefile revision 3231
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden#
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# CDDL HEADER START
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden#
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# The contents of this file are subject to the terms of the
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# Common Development and Distribution License, Version 1.0 only
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# (the "License"). You may not use this file except in compliance
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# with the License.
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden#
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# You can obtain a copy of the license at
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# trunk/opends/resource/legal-notices/OpenDS.LICENSE
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# See the License for the specific language governing permissions
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# and limitations under the License.
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden#
81fa98d35ae3311ac4fc6a65512c3e6137221cb6Phill Cunnington# When distributing Covered Code, include this CDDL HEADER in each
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# file and include the License file at
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# add the following below this CDDL HEADER, with the fields enclosed
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# by brackets "[]" replaced with your own identifying information:
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# Portions Copyright [yyyy] [name of copyright owner]
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden#
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# CDDL HEADER END
81fa98d35ae3311ac4fc6a65512c3e6137221cb6Phill Cunnington#
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden#
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# Copyright 2008 Sun Microsystems, Inc.
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden#
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# This is the Makefile than can be used to generate the executables
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# winlauncher.exe and opends_service.exe that are used by OpenDS in
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# windows.
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden#
e17a30b0ade08dc5550b03e7035b6754fa673417Jonathan Scudder# The compilation of winlauncher.exe is straightforward but in the case of
e17a30b0ade08dc5550b03e7035b6754fa673417Jonathan Scudder# opends_service.exe uses a Message File called EventLogMsg.mc which
e17a30b0ade08dc5550b03e7035b6754fa673417Jonathan Scudder# makes the compilation a little bit more complex.
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# During compilation the first step is to generate EventLogMsg.h and
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden# EventLogMsg.res using the rc.exe and mc.exe utilities.
573a6fae199e07a8da573c3c1d048955b254a3eeNeil Madden#
# EventLogMsg.h contains some references to the message IDs that are sent to
# the Windows Event Log and is required in order service.c to be compiled.
# Once the EvenLogMsg.h file is generated we can compile the service.c and
# common.c and finally we link the service.obj, common.obj and
# EventLogMsg.res files and we generate the opends_service.exe executable.
#
CC=cl
SERVICE_PROGNAME=opends_service.exe
LAUNCHER_ADMINISTRATOR_PROGNAME=launcher_administrator.exe
WINLAUNCHER_PROGNAME=winlauncher.exe
LINKER=link -nologo /machine:x86
LIBS=advapi32.lib
CFLAGS= -D_WINDOWS -nologo -W3 -O2
RC=rc
MC=mc
MT=mt
SRCS = common.c winlauncher.c service.c
SERVICE_OBJS = common.obj service.obj
WINLAUNCHER_OBJS = common.obj winlauncher.obj
EVENTLOG_H = EventLogMsg.h
MC_FILE = EventLogMsg.mc
RC_FILE = EventLogMsg.rc
RES_FILE = EventLogMsg.res
SERVICE_MANIFEST_FILE = opends_service.exe.manifest
LAUNCHER_ADMINISTRATOR_MANIFEST_FILE = launcher_administrator.exe.manifest
.c.obj:
$(CC) $(CFLAGS) -c $< -Fo$@
$(RES_FILE):
$(MC) $(MC_FILE)
$(RC) /fo $(RES_FILE) $(RC_FILE)
all: $(SERVICE_PROGNAME) $(WINLAUNCHER_PROGNAME) $(LAUNCHER_ADMINISTRATOR_PROGNAME)
$(SERVICE_PROGNAME) : $(RES_FILE) $(SERVICE_OBJS)
$(LINKER) /OUT:$(SERVICE_PROGNAME) $(RES_FILE) $(SERVICE_OBJS) $(LIBS)
$(MT) -manifest "$(SERVICE_MANIFEST_FILE)" -outputresource:"$(SERVICE_PROGNAME)";#1
$(WINLAUNCHER_PROGNAME) : $(WINLAUNCHER_OBJS)
$(LINKER) $(WINLAUNCHER_OBJS) /OUT:$(WINLAUNCHER_PROGNAME)
$(LAUNCHER_ADMINISTRATOR_PROGNAME) : $(WINLAUNCHER_OBJS)
$(LINKER) $(WINLAUNCHER_OBJS) /OUT:$(LAUNCHER_ADMINISTRATOR_PROGNAME)
$(MT) -manifest "$(LAUNCHER_ADMINISTRATOR_MANIFEST_FILE)" -outputresource:"$(LAUNCHER_ADMINISTRATOR_PROGNAME)";#1
clean:
del $(SERVICE_OBJS) $(EVENTLOG_H) $(WINLAUNCHER_OBJS) $(RC_FILE) $(RES_FILE) $(SERVICE_PROGNAME) $(WINLAUNCHER_PROGNAME) $(LAUNCHER_ADMINISTRATOR_PROGNAME) core