###############################################################################
# BRLTTY - A background process providing access to the console screen (when in
#          text mode) for a blind person using a refreshable braille display.
#
# Copyright (C) 1995-2023 by The BRLTTY Developers.
#
# BRLTTY comes with ABSOLUTELY NO WARRANTY.
#
# This is free software, placed under the terms of the
# GNU Lesser General Public License, as published by the Free Software
# Foundation; either version 2.1 of the License, or (at your option) any
# later version. Please see the file LICENSE-LGPL for details.
#
# Web Page: http://brltty.app/
#
# This software is maintained by Dave Mielke <dave@mielke.cc>.
###############################################################################

DRIVER_CODE = em
DRIVER_NAME = TerminalEmulator
DRIVER_USAGE = terminal emulator with shared memory segment
DRIVER_VERSION = 
DRIVER_DEVELOPERS = Dave Mielke <dave@mielke.cc>
include $(SRC_TOP)screen.mk

OBJECT_FILES = em_screen.$O scr_terminal.$O msg_queue.$O

screen.$O: $(OBJECT_FILES)
	$(MKREL) $@ $(OBJECT_FILES)

em_screen.$O:
	$(CC) $(SCR_CFLAGS) -c $(SRC_DIR)/em_screen.c

%.$O: $(SRC_TOP)$(PGM_DIR)/%.c $(SRC_TOP)$(HDR_DIR)/%.h
	$(CC) $(SCR_CFLAGS) -c $<

