1#**********************************************************************
2# Copyright (c) 2000, 2015 IBM Corporation and others.
3#
4# This program and the accompanying materials
5# are made available under the terms of the Eclipse Public License 2.0
6# which accompanies this distribution, and is available at
7# https://www.eclipse.org/legal/epl-2.0/
8#
9# SPDX-License-Identifier: EPL-2.0
10#
11# Contributors:
12#     Kevin Cornell (Rational Software Corporation)
13#     Mikael Barbero
14#**********************************************************************
15include ../make_version.mak
16# Makefile for creating the Cocoa eclipse launcher program.
17
18# This makefile expects the following environment variables set:
19#
20# PROGRAM_OUTPUT  - the filename of the output executable
21# DEFAULT_OS      - the default value of the "-os" switch
22# DEFAULT_OS_ARCH - the default value of the "-arch" switch
23# DEFAULT_WS      - the default value of the "-ws" switch
24
25#default value for PROGRAM_OUTPUT
26ifeq ($(PROGRAM_OUTPUT),)
27  PROGRAM_OUTPUT=eclipse
28endif
29PROGRAM_LIBRARY=eclipse_$(LIB_VERSION).so
30
31# Define the object modules to be compiled and flags.
32MAIN_OBJS = eclipseMain.o eclipseCocoaMain.o
33COMMON_OBJS = eclipseConfig.o eclipseCommon.o eclipseCocoaCommon.o
34DLL_OBJS	= eclipse.o eclipseCocoa.o eclipseUtil.o eclipseJNI.o eclipseShm.o
35
36EXEC = $(PROGRAM_OUTPUT)
37DLL = $(PROGRAM_LIBRARY)
38LIBS = -framework Cocoa
39
40CFLAGS = -O -s \
41	-Wall \
42	-DCOCOA -xobjective-c \
43	$(ARCHS) \
44	-DMACOSX \
45	-DDEFAULT_OS="\"$(DEFAULT_OS)\"" \
46	-DDEFAULT_OS_ARCH="\"$(DEFAULT_OS_ARCH)\"" \
47	-DDEFAULT_WS="\"$(DEFAULT_WS)\"" \
48	-I.. $(JAVA_HEADERS)
49
50all: $(EXEC) $(DLL)
51
52eclipse.o: ../eclipse.c ../eclipseOS.h ../eclipseCommon.h ../eclipseJNI.h
53	$(CC) $(CFLAGS) -c ../eclipse.c -o $@
54
55eclipseCocoaMain.o : eclipseCocoaMain.c
56	$(CC) $(CFLAGS) -c eclipseCocoaMain.c -o $@
57
58eclipseMain.o: ../eclipseUnicode.h ../eclipseCommon.h eclipseMain.c ../eclipseMain.c
59	$(CC) $(CFLAGS) -c eclipseMain.c -o $@
60
61eclipseJNI.o: ../eclipseJNI.c ../eclipseCommon.h ../eclipseOS.h ../eclipseJNI.h
62	$(CC) $(CFLAGS) -c ../eclipseJNI.c -o $@
63
64eclipseUtil.o: ../eclipseUtil.c ../eclipseUtil.h ../eclipseOS.h
65	$(CC) $(CFLAGS) -c ../eclipseUtil.c -o $@
66
67eclipseConfig.o: ../eclipseConfig.c ../eclipseConfig.h ../eclipseOS.h
68	$(CC) $(CFLAGS) -c ../eclipseConfig.c -o $@
69
70eclipseCommon.o: ../eclipseCommon.h ../eclipseUnicode.h ../eclipseCommon.c
71	$(CC) $(CFLAGS) -c ../eclipseCommon.c -o $@
72
73eclipseShm.o: ../eclipseShm.h ../eclipseUnicode.h ../eclipseShm.c
74	$(CC) $(CFLAGS) -c ../eclipseShm.c -o $@
75
76$(EXEC): $(MAIN_OBJS) $(COMMON_OBJS)
77	$(CC) -pagezero_size 0x1000 -o $(EXEC) $(ARCHS) $(MAIN_OBJS) $(COMMON_OBJS) $(LIBS)
78
79$(DLL): $(DLL_OBJS) $(COMMON_OBJS)
80	$(CC) -bundle -o $(DLL) $(ARCHS) $(DLL_OBJS) $(COMMON_OBJS) $(LIBS)
81
82install: all
83	cp -v $(EXEC) $(PROGRAM_OUTPUT_DIR)
84	rm -f $(EXEC) $(OBJS)
85
86clean:
87	rm -f $(EXEC) $(DLL) $(MAIN_OBJS) $(COMMON_OBJS) $(DLL_OBJS)
88