1#******************************************************************************* 2# Copyright (c) 2002, 2009 QNX Software Systems and others. 3# All rights reserved. This program and the accompanying materials 4# are made available under the terms of the Eclipse Public License v1.0 5# which accompanies this distribution, and is available at 6# http://www.eclipse.org/legal/epl-v10.html 7# 8# Contributors: 9# QNX Software Systems - initial API and implementation 10# Alex Blewitt - MacOSX with a 64-bit vm 11#*******************************************************************************/ 12 13# Defaults which can be overridden. 14LINUX=linux 15ARCH_X86 = x86 16ARCH_X86_64 = x86_64 17ARCH_AARCH64 = aarch64 18ARCH_PPC64LE = ppc64le 19ARCH_MIPS64EL = mips64el 20 21CC=gcc 22PPC64LE_CC=powerpc64le-linux-gnu-gcc 23LD=libtool 24CPPFLAGS = -I. 25CFLAGS +=-B/usr/lib/x86_64-linux-gnu -fpic -D_REENTRANT -D_GNU_SOURCE 26 27ARCH_FLAG_X86 = -m32 28ARCH_FLAG_X86_64 = 29ARCH_FLAG_AARCH64 = -fPIC 30ARCH_FLAG_MIPS64EL = -fPIC 31 32INSTALL_DIR_LINUX_X86 = ../os/$(LINUX)/$(ARCH_X86) 33INSTALL_DIR_LINUX_X86_64 = ../os/$(LINUX)/x86-64 34INSTALL_DIR_LINUX_AARCH64 = ../os/$(LINUX)/$(ARCH_AARCH64) 35INSTALL_DIR_LINUX_PPC64LE = ../os/$(LINUX)/$(ARCH_PPC64LE) 36INSTALL_DIR_LINUX_MIPS64EL = ../os/$(LINUX)/$(ARCH_MIPS64EL) 37 38LIB_NAME_PTY = libpty.so 39 40LIB_NAME_FULL_PTY_LINUX_X86 = $(INSTALL_DIR_LINUX_X86)/libpty.so 41LIB_NAME_FULL_PTY_LINUX_X86_64 = $(INSTALL_DIR_LINUX_X86_64)/libpty.so 42LIB_NAME_FULL_PTY_LINUX_AARCH64 = $(INSTALL_DIR_LINUX_AARCH64)/libpty.so 43LIB_NAME_FULL_PTY_LINUX_PPC64LE = $(INSTALL_DIR_LINUX_PPC64LE)/libpty.so 44LIB_NAME_FULL_PTY_LINUX_MIPS64EL = $(INSTALL_DIR_LINUX_MIPS64EL)/libpty.so 45 46OBJS_PTY_X86 = exec_pty_$(ARCH_X86).o openpty_$(ARCH_X86).o pfind_$(ARCH_X86).o 47OBJS_PTY_X86_64 = exec_pty_$(ARCH_X86_64).o openpty_$(ARCH_X86_64).o pfind_$(ARCH_X86_64).o 48OBJS_PTY_AARCH64 = exec_pty_$(ARCH_AARCH64).o openpty_$(ARCH_AARCH64).o pfind_$(ARCH_AARCH64).o 49OBJS_PTY_PPC64LE = exec_pty_$(ARCH_PPC64LE).o openpty_$(ARCH_PPC64LE).o pfind_$(ARCH_PPC64LE).o 50OBJS_PTY_MIPS64EL = exec_pty_$(ARCH_MIPS64EL).o openpty_$(ARCH_MIPS64EL).o pfind_$(ARCH_MIPS64EL).o 51 52OBJS_X86 = $(OBJS_PTY_X86) 53OBJS_X86_64 = $(OBJS_PTY_X86_64) 54OBJS_AARCH64 = $(OBJS_PTY_AARCH64) 55OBJS_PPC64LE = $(OBJS_PTY_PPC64LE) 56OBJS_MIPS64EL = $(OBJS_PTY_MIPS64EL) 57 58all: linux_x86 linux_x86_64 linux_ppc64le linux_aarch64 linux_mips64el 59 60linux_x86: $(LIB_NAME_FULL_PTY_LINUX_X86) 61linux_x86_64: $(LIB_NAME_FULL_PTY_LINUX_X86_64) 62linux_aarch64: $(LIB_NAME_FULL_PTY_LINUX_AARCH64) 63# Prerequisites: apt-get install gcc-powerpc64le-linux-gnu libc-dev-ppc64el-cross 64linux_ppc64le: $(LIB_NAME_FULL_PTY_LINUX_PPC64LE) 65linux_mips64el: $(LIB_NAME_FULL_PTY_LINUX_MIPS64EL) 66 67rebuild: clean all 68 69$(LIB_NAME_FULL_PTY_LINUX_X86): $(OBJS_PTY_X86) 70 mkdir -p $(INSTALL_DIR_LINUX_X86) 71 $(CC) -m32 -g -shared -Wl,-soname,$(LIB_NAME_PTY) $(LDFLAGS) -o $(LIB_NAME_FULL_PTY_LINUX_X86) $(OBJS_PTY_X86) 72 73$(LIB_NAME_FULL_PTY_LINUX_X86_64): $(OBJS_PTY_X86_64) 74 mkdir -p $(INSTALL_DIR_LINUX_X86_64) 75 $(CC) -g -shared -Wl,-soname,$(LIB_NAME_PTY) $(LDFLAGS) -o $(LIB_NAME_FULL_PTY_LINUX_X86_64) $(OBJS_PTY_X86_64) 76 77$(LIB_NAME_FULL_PTY_LINUX_AARCH64): $(OBJS_PTY_AARCH64) 78 mkdir -p $(INSTALL_DIR_LINUX_AARCH64) 79 $(CC) -g -shared -Wl,-soname,$(LIB_NAME_PTY) $(LDFLAGS) -o $(LIB_NAME_FULL_PTY_LINUX_AARCH64) $(OBJS_PTY_AARCH64) 80 81$(LIB_NAME_FULL_PTY_LINUX_PPC64LE): $(OBJS_PTY_PPC64LE) 82 mkdir -p $(INSTALL_DIR_LINUX_PPC64LE) 83 $(PPC64LE_CC) -g -shared -Wl,-soname,$(LIB_NAME_PTY) $(LDFLAGS) -o $(LIB_NAME_FULL_PTY_LINUX_PPC64LE) $(OBJS_PTY_PPC64LE) 84 85$(LIB_NAME_FULL_PTY_LINUX_MIPS64EL): $(OBJS_PTY_MIPS64EL) 86 mkdir -p $(INSTALL_DIR_LINUX_MIPS64EL) 87 $(CC) -g -shared -Wl,-soname,$(LIB_NAME_PTY) $(LDFLAGS) -o $(LIB_NAME_FULL_PTY_LINUX_MIPS64EL) $(OBJS_PTY_MIPS64EL) 88 89exec_pty_$(ARCH_X86).o: exec_pty.c 90 $(CC) $(CFLAGS) $(ARCH_FLAG_X86) $(CPPFLAGS) -c -o $@ exec_pty.c 91 92openpty_$(ARCH_X86).o: openpty.c 93 $(CC) $(CFLAGS) $(ARCH_FLAG_X86) $(CPPFLAGS) -c -o $@ openpty.c 94 95pfind_$(ARCH_X86).o: pfind.c 96 $(CC) $(CFLAGS) $(ARCH_FLAG_X86) $(CPPFLAGS) -c -o $@ pfind.c 97 98exec_pty_$(ARCH_X86_64).o: exec_pty.c 99 $(CC) $(CFLAGS) $(ARCH_FLAG_X86_64) $(CPPFLAGS) -c -o $@ exec_pty.c 100 101openpty_$(ARCH_X86_64).o: openpty.c 102 $(CC) $(CFLAGS) $(ARCH_FLAG_X86_64) $(CPPFLAGS) -c -o $@ openpty.c 103 104pfind_$(ARCH_X86_64).o: pfind.c 105 $(CC) $(CFLAGS) $(ARCH_FLAG_X86_64) $(CPPFLAGS) -c -o $@ pfind.c 106 107exec_pty_$(ARCH_AARCH64).o: exec_pty.c 108 $(CC) $(CFLAGS) $(ARCH_FLAG_AARCH64) $(CPPFLAGS) -c -o $@ exec_pty.c 109 110openpty_$(ARCH_AARCH64).o: openpty.c 111 $(CC) $(CFLAGS) $(ARCH_FLAG_AARCH64) $(CPPFLAGS) -c -o $@ openpty.c 112 113pfind_$(ARCH_AARCH64).o: pfind.c 114 $(CC) $(CFLAGS) $(ARCH_FLAG_AARCH64) $(CPPFLAGS) -c -o $@ pfind.c 115 116exec_pty_$(ARCH_PPC64LE).o: exec_pty.c 117 $(PPC64LE_CC) $(CFLAGS) $(ARCH_FLAG_PPC64LE) $(CPPFLAGS) -c -o $@ exec_pty.c 118 119openpty_$(ARCH_PPC64LE).o: openpty.c 120 $(PPC64LE_CC) $(CFLAGS) $(ARCH_FLAG_PPC64LE) $(CPPFLAGS) -c -o $@ openpty.c 121 122pfind_$(ARCH_PPC64LE).o: pfind.c 123 $(PPC64LE_CC) $(CFLAGS) $(ARCH_FLAG_PPC64LE) $(CPPFLAGS) -c -o $@ pfind.c 124 125exec_pty_$(ARCH_MIPS64EL).o: exec_pty.c 126 $(CC) $(CFLAGS) $(ARCH_FLAG_MIPS64EL) $(CPPFLAGS) -c -o $@ exec_pty.c 127 128openpty_$(ARCH_MIPS64EL).o: openpty.c 129 $(CC) $(CFLAGS) $(ARCH_FLAG_MIPS64EL) $(CPPFLAGS) -c -o $@ openpty.c 130 131pfind_$(ARCH_MIPS64EL).o: pfind.c 132 $(CC) $(CFLAGS) $(ARCH_FLAG_MIPS64EL) $(CPPFLAGS) -c -o $@ pfind.c 133 134clean : 135 $(RM) $(OBJS_X86) $(LIB_NAME_FULL_PTY_LINUX_X86) 136 $(RM) $(OBJS_X86_64) $(LIB_NAME_FULL_PTY_LINUX_X86_64) 137 $(RM) $(OBJS_AARCH64) $(LIB_NAME_FULL_PTY_LINUX_AARCH64) 138 $(RM) $(OBJS_PPC64LE) $(LIB_NAME_FULL_PTY_LINUX_PPC64LE) 139 $(RM) $(OBJS_MIPS64EL) $(LIB_NAME_FULL_PTY_LINUX_MIPS64EL) 140