# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.


CC ?= gcc
CCFLAGS ?= -Wall -Werror
PKG_CONFIG ?= pkg-config

INCLUDE_DIRS = $(shell $(PKG_CONFIG) --cflags x11 xrandr)
LIB_DIRS = $(shell $(PKG_CONFIG) --libs x11 xrandr xext)

MON=ch7036_monitor
BUG=ch7036_debug
OBJECTS=ch7036_access.o GenTableCH7036.o edid_utils.o xrr_utils.o

all: $(MON) $(BUG)

.c.o:
	$(CC) $(CCFLAGS) $(INCLUDE_DIRS) -c $< -o $@

$(MON): $(OBJECTS) $(MON).o
	$(CC) $(CCFLAGS) $(INCLUDE_DIRS) $(LIB_DIRS) $^ $(LIBS) $(LDFLAGS) \
                -o $@

$(BUG): $(OBJECTS) $(BUG).o
	$(CC) $(CCFLAGS) $(INCLUDE_DIRS) $(LIB_DIRS) $^ $(LIBS) $(LDFLAGS) \
                -o $@


clean:
	@rm -f $(MON) $(BUG) $(OBJECTS)



