2014-01-27 12:33:19 +00:00
|
|
|
# Simple Makefile for Kvazaar HEVC encoder
|
|
|
|
|
2014-02-03 12:27:19 +00:00
|
|
|
ifeq (, $(ARCH))
|
2014-02-03 13:53:21 +00:00
|
|
|
ARCH = $(shell uname -m)
|
2014-02-03 12:27:19 +00:00
|
|
|
endif
|
2014-01-30 15:56:52 +00:00
|
|
|
SYSTEM = $(shell uname -s)
|
|
|
|
ASMFLAGS =
|
2014-06-04 12:22:06 +00:00
|
|
|
DFLAGS = -O2 -g -Werror -march=native -ftree-vectorize
|
2014-01-27 12:33:19 +00:00
|
|
|
|
2014-01-30 15:56:52 +00:00
|
|
|
# ARCH related flags
|
|
|
|
ifeq ($(ARCH), x86_64)
|
2014-05-28 12:47:24 +00:00
|
|
|
TARGET_CPU_BITS := 64
|
|
|
|
TARGET_CPU_ARCH := x86
|
|
|
|
else ifeq ($(ARCH), ppc64)
|
|
|
|
TARGET_CPU_BITS := 64
|
|
|
|
TARGET_CPU_ARCH := ppc
|
2014-01-27 12:33:19 +00:00
|
|
|
else
|
2014-05-28 12:47:24 +00:00
|
|
|
#safe (?) defaults
|
|
|
|
TARGET_CPU_BITS := 32
|
|
|
|
TARGET_CPU_ARCH := x86
|
2014-01-27 12:33:19 +00:00
|
|
|
endif
|
|
|
|
|
2014-05-28 12:47:24 +00:00
|
|
|
DFLAGS += -m$(TARGET_CPU_BITS)
|
|
|
|
LDFLAGS += -m$(TARGET_CPU_BITS)
|
|
|
|
|
2014-02-03 12:27:19 +00:00
|
|
|
# Windows (cygwin/mingw) specific flags
|
|
|
|
ifneq ( ,$(findstring Windows, $(OS)))
|
|
|
|
ifeq ($(ARCH), x86_64)
|
|
|
|
ASMFLAGS += -f win64
|
2014-01-30 15:56:52 +00:00
|
|
|
else
|
2014-02-03 12:27:19 +00:00
|
|
|
ASMFLAGS += -f win32
|
2014-02-21 12:53:47 +00:00
|
|
|
ASMFLAGS += -DPREFIX
|
2014-01-30 15:56:52 +00:00
|
|
|
endif
|
2014-04-28 16:29:01 +00:00
|
|
|
DFLAGS += -D__USE_MINGW_ANSI_STDIO=1
|
2014-01-30 15:56:52 +00:00
|
|
|
# OS X specific flags
|
2014-02-03 12:27:19 +00:00
|
|
|
else ifeq ($(SYSTEM),Darwin)
|
2014-01-30 15:56:52 +00:00
|
|
|
ifeq ($(ARCH), x86_64)
|
2014-02-03 12:27:19 +00:00
|
|
|
ASMFLAGS += -f macho64
|
2014-01-30 15:56:52 +00:00
|
|
|
else
|
2014-02-03 12:27:19 +00:00
|
|
|
ASMFLAGS += -f macho32
|
2014-01-30 15:56:52 +00:00
|
|
|
endif
|
|
|
|
ASMFLAGS += -DPREFIX
|
2014-02-03 12:27:19 +00:00
|
|
|
# Default to Linux/elf specific flags
|
|
|
|
else
|
2014-02-21 12:53:47 +00:00
|
|
|
ifeq ($(ARCH), x86_64)
|
2014-02-03 12:27:19 +00:00
|
|
|
ASMFLAGS += -f elf64
|
|
|
|
else
|
|
|
|
ASMFLAGS += -f elf32
|
|
|
|
endif
|
2014-01-27 12:33:19 +00:00
|
|
|
endif
|
|
|
|
|
2014-06-12 06:57:08 +00:00
|
|
|
# Do not use variable length arrays because they don't work in Visual Studio 2013.
|
|
|
|
WARNINGS = -Wall -Wtype-limits -Wvla
|
|
|
|
|
2014-05-13 09:19:52 +00:00
|
|
|
CC = gcc
|
2014-06-13 07:20:02 +00:00
|
|
|
CCFLAGS = $(DFLAGS) -I. -I./strategies $(WARNINGS)
|
2014-02-03 12:27:19 +00:00
|
|
|
LDFLAGS += -lm
|
2014-05-16 06:47:04 +00:00
|
|
|
LD = gcc -pthread -lrt
|
2014-06-13 07:20:02 +00:00
|
|
|
OBJS = interface_main.o encmain.o bitstream.o cabac.o checkpoint.o config.o context.o cu.o encoder.o encoderstate.o filter.o inter.o intra.o nal.o imagelist.o rdo.o sao.o scalinglist.o search.o strategyselector.o tables.o threadqueue.o transform.o encoder_state-bitstream.o encoder_state-ctors_dtors.o encoder_state-geometry.o image.o videoframe.o strategies/strategies-picture.o strategies/strategies-nal.o
|
2014-01-27 12:33:19 +00:00
|
|
|
PROG = ./kvazaar
|
|
|
|
PROGS = $(PROG)
|
|
|
|
|
2014-04-15 11:47:24 +00:00
|
|
|
DEPS = $(OBJS:.o=.d)
|
|
|
|
|
2014-02-03 12:27:19 +00:00
|
|
|
all: $(PROGS)
|
|
|
|
.PHONY: all clean
|
2014-01-30 15:56:52 +00:00
|
|
|
|
2014-01-27 12:33:19 +00:00
|
|
|
$(PROG): $(OBJS) $(ASMOBJS)
|
2014-01-29 15:34:31 +00:00
|
|
|
$(LD) $^ $(LDFLAGS) -o $@
|
2014-01-27 12:33:19 +00:00
|
|
|
|
2014-04-15 13:47:17 +00:00
|
|
|
%.o: %.c Makefile
|
2014-01-27 12:33:19 +00:00
|
|
|
$(CC) $(CCFLAGS) -c $< -o $@
|
|
|
|
|
2014-04-15 13:47:17 +00:00
|
|
|
%.d: %.c Makefile
|
2014-04-15 11:47:24 +00:00
|
|
|
$(CC) $(CCFLAGS) -MF"$@" -MG -MM -MP -MT"$@" -MT"$(<:.c=.o)" "$<"
|
|
|
|
|
2014-04-16 06:09:10 +00:00
|
|
|
|
2014-02-03 12:27:19 +00:00
|
|
|
clean:
|
2014-05-28 12:47:24 +00:00
|
|
|
echo $(ARCH)
|
2014-04-15 11:47:24 +00:00
|
|
|
rm -f $(OBJS) $(PROGS) $(ASMOBJS) $(DEPS)
|
|
|
|
|
|
|
|
-include $(DEPS)
|